Skip to main content

Full text of "CBM 8-Bit Magazine Index: Compute's Gazette Special Section"

See other formats


it) 


COMPUTE 


AUGUST 1993 
SPECIAL REPORT! 


PLUS! 


HP's LASERJET 4 
WARS OF THE DISTANT PAST 
DESKTOP FORGERY 
Eicle sle‘e's oete » seis oc ewere 
FAST, POWERFUL, a 
AND EASY TO USE! : 
2] 


64/128 VIEW 


A veteran 128 publication turns its 
editorial eye on the 64 with the launching 


of Twin Cities 128/64. 
Tom Neisel 


azette celebrated its 
tenth anniversary 
when the July issue 
rolled off the presses. 
That's almost 120 issues. 
(We missed a couple during 
the summer of 1990.) RUN 
made it to issue 99 before it 
closed its final page. 

Computer magazines 
come and go, and those 
that hitch their editorial wag- 
ons to one machine often 
experience a meteoric ride. 
Some flash onto the scene, 
burn brightly, and then fizzle 
away; while others maintain 
a steady glow. 

Gazette started its associa- 
tion with the 8-bit Commo- 
dores by focusing on the 
VIC-20 and the 64, adding 
coverage of the Plus/4, 16, 
and 128 when those ma- 
chines came along. When 
the 64 and 128 emerged as 
the leaders, we followed the 
numbers and concentrated 
our coverage on those ma- 
chines. Surveys tell us that 
70 percent of you own 64s, 

Few publications have de- 
voted coverage exclusively 
to the 128. Twin Cities 128 
was the exception. Founded 
by Loren Lovhaug in 1985, 
TC 128 was primarily a tech- 
nical publication that ap- 
pealed to 128 program- 
mers. It had its fans, but 
they were not enough to 
keep it in operation. It fold- 
ed in 1991. 

And then along came 
John W. Brown, president of 
Parsec. He bought the 
rights to the magazine a few 
months later and resumed 
publication. Coverage at 
that time was still limited to 
the 128. 

When RUN died last 
year, Brown figured that his 
publication should offer 
some support to 64 owners 


in addition to the 128 
crowd. So with issue num- 
ber 33, Brown launched the 
new Twin Cities 128/64. Pro- 
duced on a 128-D with a la- 
ser printer, TC 128/64 de- 
votes about half of its 56 pag- 
es to each machine. Look 
for reviews, articles, GEOS in- 
fo, and technical pieces, but 
don't expect a large number 
of type-in programs. 

The cost for U.S. subscrib- 
ers is $24 for six issues, The 
magazine and companion 
disk cost $40. To subscribe 
or for more information, 
write to Parsec, P.O, Box 
111, Salem, Massachusetts 
01970-0111. You can also 
write for a free copy of the 
magazine. 

In addition to Twin Cities 
128/64, Parsec offers a vari- 
ety of disks, fonts, GEOS 
graphics, and other prod- 
ucts for 64 and 128 users. 
S!Dplayer fans should note 
that COMPUTE has sold the 
exclusive distribution rights 
to the book and disk to Par- 
sec. That book/disk combina- 
tion should be repackaged 
and for sale by now. 

In “Upgrading Without 
Changing Platforms” (June 
1993), it was reported that 
Parsec had dropped plans 
to produce a board that 
would let a 128 operate at 6- 
12 MHz. Well, that wasn't en- 
tirely accurate. Brown told 
me that the company work- 
ing on the prototype had 
dropped it, but he still in- 
tends to produce it—and 
one for the 64 as well. 

Brown says the product 
is now an external cartridge, 
CMD compatible, that will 
plug into the expansion 
port. It will probably use a 
65C816 chip and operate at 
12 MHz. The cost is expect- 
ed to be about $200. im) 


GAZETTE 


64/128 VIEW 


G-] 


A veteran 128 publication now covers the 64, too. 


By Tom Netsel. 


REACH OUT AND WRITE 


G-3 


Telecommunications can ease the loneliness of writing. 


By Karl R. Witsman. 
REVIEWS 


G-10 


KeyDOS ROM Version 2 and Risers and Sliders. 


FEEDBACK 


Questions, answers, and comments. 


PD PICKS 


Mille Bornes and Maximum Overdrive. 
By Steve Vander Ark. 


G-14 


G-16 


MACHINE LANGUAGE 


Delete extra Returns that cause file to crash. 
By Jim Butterfield. 


PROGRAMMER’S PAGE 


Celebrate this column's fifth anniversary. 
By Randy Thompson. 


BEGINNER BASIC 


Using BASIC to solve a homework assignment. 


By Larry Cotton. 


G-18 


G-20 


G-22 


GEOS 


G-23 


Import graphics into your geoPublish documents. 


By Steve Vander Ark. 
D’IVERSIONS 


G-24 


How the Multimedia Road Warrior got his name. 


By Fred D'Ignazio. 


PROGRAMS 

32 Sprites (64) 

Midway Command (64) 

Chase (64) 

Memory Monitor (64) 

Cubic (64) 

The Automatic Proofreader (64/128) 


G-25 
G-31 
G-34 
G-37 
G-38 
G-40 


AUGUST 1993 COMPUTE 


G1 


Writing is a solitary activity, but it 
doesn't have to be a lonely one 
if you use your computer to network 
with other writers. 
By Karl Witsman 


of power a computer gives you— 

power that you never had with a 
typewriter. But if you use your 64 only 
for word processing or the occasional 
game of Space Invaders, you haven't 
explored its most powerful use. 
There's a great force out there just 
waiting for you to tap into it with your 
computer and modem. It’s called net- 
working, and it can multiply your com- 
puting power and help your writing! 

Most folks using computers have 
heard of BBSs or bulletin board sys- 
tems, The popular notion of a BBS run 
by a teenaged hacker may have 
some validity, but many systems are 
run by serious computer enthusiasts, 
computer clubs, schools, and bus- 
inesses. Some are created for fun; 
others have a more serious intent. All 
require a modem to connect your 
computer to a telephone line. 

Running any BBS can be trouble- 
some and is definitely time-consuming 
for the owner or system operator 
(sysop). These are labors of love, 
since most BBSs bring in no money. 
Sysops usually appreciate any help 
they can get, even if it's only through 
the messages posted by callers, but 
volunteers can help in other ways as 
well. Many boards have areas devoted 
to special topics, and often these 
areas are directed by outside sysops. | 
have volunteered on more than one of 
my local boards to form a writers’ area. 
This is a place where local writers can 
converse about literary topics, and this 
is the place where networking comes 
into play. 


I. you're a writer, you know what kind 


A Waiters BBS 


To share the fun and information, 
try to find a BBS in your local area. 
If you can't locate one with a 
writer's SIG, here are some you 
might want to try. Several of these 
BBSs have specific writing areas. 
All allow access up to at least 2400 
bps and run 24 hours. 

e Almost Paradise, Oakwood, 
Illinois; (217) 354-4711. The sysop 
is Christy Blew. Leave a message 
for Karl Witsman, user number 56. 
If | can find more BBS/writing infor- 
mation, I'll reply with it here. 

e Electronic Pen BBS, Harrington 
Park, New Jersey; (201) 767-6337. 

e Data Central, Indianapolis, 
Indiana; (317) 543-2007. 

e Heartland Free-Net, Peoria, 
Illinois; (809) 674-1100. 

e Unique and Nifty BBS, Craw- 
fordsville, Indiana; (317) 364-9600. 

e Voyager BBS, East Lansing, 
Michigan; (517) 641-4367. 

For additional BBS sources, try 
these publications or bulletin boards. 
e BBS Callers Digest, 701 Stokes 
Road, Medford, New Jersey 08055. 
Its BBS is The Livewire at (609) 235- 
5297. 

e Boardwatch Magazine, 5970 
South Vivian Street, Littleton, 
Colorado 80127. Its BBS number is 
(303) 973-4222. 

e /nfomat Online Weekly PC News 
Magazine. For information about BBSs 
everywhere, call (913) 478-9239. 


Write Here 

On a BBS, writers can discuss any- 
thing, such as the mechanics of manu- 
script preparation, agents, who us- 
es/hates outlines, how to query about 
possible articles, or how to deal with 
deadlines. Some topics are even more 
involved, such as “Where does this sex 
scene fit into the story?” or “How do | 
show my character's thinking process- 
es?” For questions that have no simple 
answers, the opinions of other writers 
can often prove helpful. If you're not a 
member of a writing group that meets 
in person, this electronic connection 
may be the only way to pick the brains 
of others in your field. 


Three Approaches 
There are three main ways to con- 
verse on a BBS. The first is simply to 
leave a message in a general mes- 
sage area and let other:callers read 
and respond to it. In most cases, 
other callers can respond on the 
same message area or send you a 
private reply through electronic mail. 
The second method of exchanging 
information with other computing writers 
is through SIGs (Special Interest 
Groups). As their name implies, these 
areas concentrate their focus on a spe- 
cific topic of interest and one could be 
devoted to writers. 


Echo, Echo 

The third, and most sophisticated, 
method of communicating on local 
BSSs is Echo messaging. Echoes are 
a number of BBSs that form a net- 


Whiters' Forums 


The commercial online services offer 
a variety of opportunities for writers 
to meet and exchange ideas. Here's 
a sampling of what's available. 


GEnie 
401 N. Washington St. 
Rockville, MD 20850 
(800) 638-9636 

Jack Smith, screen name 
Writers.Ink, runs the Writer's Round- 
table. The nonfiction group meets 
Wednesdays at 9:30 p.m. General 
Writing meets Sundays at 9:30 p.m., 
and the Poetry Meeting is held on 
Tuesdays at 10:00 p.m. Romance 
Writing meets Thursdays at 9:00 p.m. 
All times are Eastern Time. 


QuantumLink 

8619 Westwood Center Dr. 
Vienna, VA 22182-9897 
(800) 782-2278 


The Writers’ Forum meets every 
Tuesday at 10:00 p.m. ET. Contact 
Karl Witsman, whose screen name is 
KarlW3. 

The Writers’ Forum consists of a 
very imaginative bunch. After the 
main topic has been thoroughly dis- 
cussed, the group talks about current 
writing projects and other topics. 


DELPHI 
3 Blackstone St. 
Cambridge, MA 02139 
(800) 544-4005 

The DELPHI Writer's Group is for 
all writers of fiction or nonfiction. “We 
do admit to being a bit mercenary 
about writing at times, but of course 
that’s all a part and parcel of getting 
into print—our primary interest here!” 
says the introductory text. Features 
include a Critique Network and a 
special database for writers’ 
résumés, plus public domain and 
shareware software for writers. 


Members are also eligible for special 
discounts on books, products, and 
supplies for writers. There are spe- 
cial databases for poets, screenwrit- 
ers, and fiction and nonfiction mag- 
azine and book authors 

Poetry Conference meets Tues- 
days at 9:00 p.m. ET, and the 
Creative Writing Workshop is held 
Monday nights at the same time. 
Contact persons are Ralph Roberts, 
whose screen name is Author, and 
Michael A. Banks, whose screen 
name is Kzin. 


CompuServe 
5000 Arlington Centre Blvd. 
Columbus, OH 43220 
(800) 848-8199 

CompuServe has a Desktop 
Publishing Forum, a Desktop Vendor 
Forum, and Journalism Forums. 
Contact Don (76711,437) or Thom 
(76702,765) for more information 
about items of interest to writers. 


G-4 COMPUTE AUGUST 1993 


=.) 


PUMP UP 


YOUR PRODUCTIVITY! 


Harness the potential of your, The Gazette Graphics 
64 and 128 with these , ae 


powerful programs. 


Get more work out of your 64 and 128 
with these two new disk products from 
COMPUTE's Gazette — the 1992 
Best of Gazette Utilities, and 
the Gazette Graphics Grab 


Do it all with Commodore 

graphics! 
Here's what's on it— 
Starburst Graphics, 
Screen Designer 128, 
128 Graphics Compactor, 
64 Animator, VDC Graphics, 
Dissolve 128, Super Slideshow, 
128 Animator, 1526 PrintScreen, 
Supratechnic, Medium-Resolution 


Bag! Graphics, Screen Maker, GAS!64— 
The 1992 Best of Special Edition, GAS!128-Special 
Gazette Utilities Edition. 


Seize control of your operating 
system and your world! 

Here's what's on it-MetaBASIC 64, 
MetaBASIC 128, Quick, Sprint Il, 
Ultrafont+, RAMDisk 64, RAMDisk 128, 
BASSEM, SciCalc 64, List Formatter, 
MegaSqueeze. 


Extend Your Computer Power With This Powerful Software! 


___ Check or Money Order _ MasterCard _ VISA 
| want to pump up my productivity! Please send me the ; 
@ disks checked below at $11.95 each. Credit Card No. Exp. Date 
ae Signature 
___The 1992 Best of Gazette Utilities (Required) 
_— The Gazette Graphics Grab Bag Daytime Telephone No. 
__— Subtotal Name | 
__ Sales Tax (Residents of NC and NY please add appropriate sales tax for your 
area. Canadian orders, add 7% goods and services tax.) Address 
___ Shipping and Handling ($2.00 U.S. and Canada, $3.00 surface mail, $5.00 City 


airmail per disk.) 


State/Province ZIP/Postal Code 


_— Total Enclosed 


Mail this coupon to COMPUTE's 1991 Utilities, 324 West Wendover Ave., Ste. 200, 
MasterCard and VISA accepted on orders with subtotal over $20. Greensboro, NC 27408. 


work. Most of these networks are set 
up by sysops who know sysops in 
other towns. Using this system, a 
writer in Connecticut might leave a 
message on his or her local BBS, 
Around 3:00 a.m., the Connecticut 
BBS might call a BBS in New York 
and exchange messages, being care- 
ful to keep the writing messages 
separate from those dealing with 
computers, sports, and other topics. 
The New York BBS might then call a 
BBS in Ohio and repeat the process. 
In this way, the messages echo 
around the country. 

When | call my local board, | can 
read the message posted by the Con- 
necticut writer and respond to it. Writ- 
ers all around the country have an op- 
portunity to respond, and these 
responses are entered into the net- 
work. In a day or so, after the BBSs 
exchange messages again, the 
Connecticut writer can read the re- 
sponses, as can all of the other writ- 
ers on the network. 

One such echo is the National Writ- 
ers Echo. | was a local monitor here in 
Danville, Illinois, on the Friendship 
BBS, which was run, before his death, 
by Terry Claybaugh. Through this net- 
work, | exchanged messages with 
many writers of varying degrees of 
fame, including Billie Sue Mosiman 
(author of Wire) and John DeChancie 


(author of the Starrigger series and the 
Castle Perilous series). 

Such free exchanges of infor- 
mation and opinions with other work- 
ing writers can expand your knowl- 
edge and help you keep track of up- 
to-the-minute publishing trends. All 
messages and mail are automatically 
date-stamped, so you can ignore old 
information and be aware of the most 
recent updates and changes. 


REF# 432 

POSTED: 04-20-91 

FROM: Karl R. Witsman 

TO: All 

Writers, I'm steaming mad! The U.S. 
Copyright Office has raised the copy- 
right fee from $10 to $20 to register 
our works! This may be fine for those 
who write nothing but books, but for 
those of us wishing to register short 
stories or articles, it's an outrage. 
Next time we must not let this happen; 
next time we must unite and apply our 
skills in written communication in let- 
ters to the Copyright Office, Con- 
gress, and the president. At five cents 
a word in a pulp publication, it takes a 
lot of words to earn $20. Let them 
charge bigger fees for books, and 
even bigger fees for screenplays that 
are being produted into movies, but 
leave writers of features some slack. If 
you would like to vent your spleen, as 


| just did, be sure to talk to the right 
people—those at the following 
address: Copyright Office, Library of 
Congress, Washington, DC 20559. 


As you can see, a BBS can also be 
a good way to blow off steam and let 
others know how you feel about 
trends in the field. Let's face it, writing 
is a solitary profession, but it doesn't 
have to be lonely if you can reach out 
and telecommunicate with someone. 


Bigger and Better 

Commercial online services are the 
big alternatives to local boards. These 
are not custom networks, but gigantic 
groups serving thousands of 
subscribers with varying interests. As 
the word subscriber suggests, these 
services cost for membership. 

Some examples of such services 
are DELPHI, CompuServe, Quantum- 
Link, America Online, GEnie, and BIX 
(Byte Information eXchange). Each 
service has its own pricing structure 
and fees, so a call to each would be a 
good idea for potential subscribers. 

Practically all of the major services 
have at least one area designated for 
writers. In some, you post a message 
as you do on a local BBS and then 
return in a few days to read the 
replies. Many services also offer areas 
for immediate writing discussions. This 


Publier Ge Online 


Have you ever written an article and 
then spent months mailing it from 
publisher to publisher? Now you can 
submit your manuscripts electroni- 
cally through a groundbreaking step 
in publishing by Manuscript Mar- 
keting Technologies Incorporated. 
MMTI is not like other BBSs and 
online services. It offers writers a 
unique opportunity to submit articles 
or stories which are then offered to 
publishers electronically. More than 
500 authors from all over the world 
have availed themselves of this ser- 
vice so far, as have 140 publishers 
from the U.S. and Canada. 
Submissions can be made 
through special software for IBM 
compatibles which automates the 
process and records the article or 
story on disk. Macintosh users can 
use Microsoft Word format, which is 
then transferred to ASCII and then 
into the IBM-compatible program. 
Manuscripts submitted on paper are 
scanned through optical character 
recognition (OCR) software. 
Publishers can call MMTI’s com- 
puter and set the parameters for 


what they're looking for in a manu- 
script. Let's say a publisher needs 
an article on homeless persons that’s 
about 2000 words long. The publish- 
er specifies the subject, length, and 
format (article, screenplay, book), 
and the software displays only those 
works meeting the criteria. Within the 
fiction category, there are 26 differ- 
ent parameters, and there are 323 
categories in nonfiction. 

When a publisher finds an article 
that meets the criteria, the manu- 
script can be locked so that no other 
publisher can get it. The service then 
gives the publisher information about 
how to contact the writer. The pub- 
lisher and writer then work out a 
deal. Once the two parties come to 
an agreement, the publisher can 
download the work into the publish- 
er’s computer. Little or no paper 
changes hands. Only the original 
disk and contract have to mailed. 

If you're a writer who's spending a 
fortune on postage in mailing heavy 
manuscripts from publisher to pub- 
lisher, this service might be the 
answer, It's also a good way to make 
simultaneous submissions for time- 
sensitive material. Each month, the 


writer gets a report of how many 
times the article was read and why it 
might have been rejected. This gives 
the author a chance to judge if the 
work needs further revision. 

The cost is an initial $25.00 fee 
and $10.00 per month. There is a 
storage charge of $.0001 per word 
per day. (A 6000-word piece would 
run $1.80 a month.) There is also a 
$2.00 fee per disk . When compared 
to postage to mail the manuscript to 
140 publishers, this is a very good 
deal. (Just sending a query letter to 
all these publishers would run 
$40.60!) 

For a full brochure and more infor- 
mation about its services, write to 
Manuscript Marketing Technologies, 
P.O. Box 234, Camden, South Caro- 
lina 29020. The telephone number is 
(803) 425-1675. 

Remember, MMT! does not act as 
an agent, and it cannot offer you 
advice. The company merely offers 
storage and a distribution service. 
The software does not handle graph- 
ics or photos, but authors can leave 
a note in the manuscript if photos are 
available. 


G-6 COMPUTE AUGUST 1993 


SOFTWARE SUPPORT 


INTERNATIONAL 
C-64/128 Specialists For Over Six Years 


Thousands of Commodore Owners Choose Us 
As Their One Stop Supplier . Here's Why! Cheek Out These Examples. ii 
* Largest Selection of Commodore Software in the U.S.A.! feria: GAMES 
Nobody in the Commodore market is more committed to your Jd ~~ Leaderboard Golf ; 
Commodore than we are. We have well over 225 ,000 pieces of | ‘gis Beachhead Triple Pack $9.97 
hard to get software in stock to service your every need. If Nong Nord & Bert 12.97 
you've heard of a product, odds are that we can locate it for you. Cox gd Blue Angel: 6 ) $4.97 
‘And, we stock most major Commodore titles that are still in hat RAcdog bencieh tees Se i 
production. be laf “Trump Castle Casino 14.97 


rs “wee, Bureaucracy 128 . 
* Hardware & Peripherals. Datender Ghtha Grown 


Although we can't get keyboards and disk drives any longer, we Beyond Zork 128 
can offer disks, modems, cables, interfaces, and much r more. 4x4 Off Road Racing 


* Used Software Selection. Arcade Smash Hits............... 


Our regular customers know how to stretch their software a * Batman/Robocop Bundle — $9.97 

dollars shopping our Used Software Listings. TE ta 5 Jeopardy 1-2-Jr. Bundle .........$9.97 
* Un-Advertised Specials. : . 

Our regular customers enjoy VIP service and great bargains i EDUCATIONAL 

that are hard to pass up. Thinking Cap .. -$17.97 
* Expert Technical Support. Stickybear Math 

As aregular Software Support customer, you have access to the Carmen U.S.A. 

most knowledgeable Commodore technical departments in the PO kth Typing Tutor 3 


country. Of this, we're darn proud. 


* Friendly & Courteous Order Takers. Cee 
You'll have a hard time finding order takers as anxious to help : Me 2, 
you as Sandy, Mike and Claressa. had 


Word Attack.. 
.., Donald's Alphabet 

Sky Travel 
Perfect Score SAT 
Word Spinner... 


* Fast Order Processing. 
Thanks to our automated computer system, huge inventory and 
efficient shipping staff, most orders are processed the same 


day. PRODUCTIVITY 
* Walk In Sales Department. Super 1750 Clone............ $99.95 
Newsroom $14.97 


We welcome visitors to our warehouse outlet. The same great 
deals are available and best of all, no shipping charges. 


* Worldwide Distributor Of Major Products. 
Ever hear of Maverick, Super Snapshot, Super 1750 Clone, and 
the 1581 Toolkit? We've been actively involved in the ground 
up production and world-wide distribution of these and many 
other fine Commodore products. 


* Purchase From Us With Confidence. 

We were very pleased when the Better Business Bureau came 
to us and told us that our out- 
standing reputation qualified 
us as members in their organi- 
zation. We're here to stay, not 
a fly by night, here today and 
gone tomorrow outfit. 


Certificate Maker 
Cadpak 64 «$14.97 
Mach 128 Cart 924.97 
- Paperclip Ill 64/128 ....... $29.97 
Printmaster Plus . $19.97 
Superbase 640r128..........$24.97 
Video Title Shop .............$19.97 
Animation Station ..........$34.95 
Outrageous Pages ++0$29.97 


” emmanncnss Bob's Term Pro 64...........$24.97 


Items Listed Above Do Not Include Shipping. Call Or Write For Your Free 
Catalog Listing Hundreds Of Products And Special Offers For Your 


. $14.97 


* Extensive Catalog. 

Our contacts at other mail or- 
der companies have told us 
that producing a catalog such 
as ours is too time consuming 
and worst of all - too expen- 
sive. We say it's the least we 
can do for our customers, and 
wouldn't have itany other way. 
Simply call or write for your 
free copy. 


Computer. Our Order Takers Are On Duty 6:00 a.m. - 5:00 p.m. 
M- Fand 7:00 a.m. - 3:00 p.m. Sat. - Pacific Time. 


SOMWARE Software Support Int. 


a Se 2700 N.E. Andresen Rd. 
Suite A-10 


Shinpolt sere" 
CALL TOLL FREE TODAY! 1-80 0-3§6- I 17 © 


Major Credit Cards Accepted. 


Circle Reader Service Number 190 


type of system lets you type in a ques- 
tion or comment which is distributed im- 
mediately to all of the users who are 
signed on in the area. In this way, 
dozens of writers can respond to your 
comments or questions within seconds. 
| host such an area called the 
Writers’ Forum on QuantumLink, the 
Commodore-specific service. Up to 20 
writers meet in realtime once a week in 
either a lecture or discussion format. 

If you still wonder about how an 
online forum can help you with your 
writing, here are comments from 
some of the writers who frequent Q- 
Link's forum. 

“The Writers’ Forum keeps me 
motivated. When | run out of ideas, 
the group fires me up! It's a great 
place to talk to people all over the 
country who share a love of writing,” 
says Marti Paulin. 

“If | didn't have the online forum, 
I'd have to drive 20 miles each way at 
night to get to my local group,” says 
Cheryl Turney. 

“Where else can | talk with people 
as insane as | am, from all over the 
country? Seriously, the forum offers 
me a great place to talk about what a 
writer goes through, with people who 
understand,” says Eric Lopkin. 

“The forum fires my creative 


“Someday I'm going to pull a Gauguin; chuck all this, move to Newark 
and devote myself entirely to computer art.” 


juices—and adds to my degenerate 
vocabulary,” says Donna Carlene. 

“It's fun to chat with folks as poor 
and stubborn as | am,” says Alex 
Tishcenko. 

“| enjoy the writing contest. It forc- 
es me to come up with things on a 
regular basis,” says Mike Cervini. 

Even though I’m a forum leader 
and editor of “The Writer's Newslet- 
ter," | still learn something from 
speaking with other writers. We've 
also been fortunate enough to have 
guest speakers such as Arlan 
Andrews, Poul Anderson, and 
Lawrence Block drop in to answer 
questions and give writing tips. 
Occasionally an editor such as Eric 
Lopkin (Lopkin Publishing) or Tom 
Netsel (COMPUTE’s Gazette) will stop 
by to offer advice. And remember, the 
Writers’ Forum on Q-Link is only one 
such network. Imagine what joys 
await you elsewhere. (See “Writers’ 
Forums” for additional information.) 


Commissions and Submissions 
On the national services, you never 
know when you might speak with an 
editor who's looking for someone to 
write an article, and it could be a topic 
with which you're familiar. At other 
times, an online conversation might 


SULLIVAN 
[BROTHERS | 


G-8 COMPUTE AUGUST 1993 


spark an idea that could lead to an arti- 
cle or story. This very article was par- 
tially queried and updated via E-mail 
and online meetings on QuantumLink. 

Most services have online magazines 
or areas where you can submit work for 
others to read. This is also a great way to 
gain feedback on your writing 

Fiction is popular, and some areas 
ask you to post articles and nonfic- 
tion. Another area of considerable 
interest is poetry. Here, poets can 
post their works, and readers are 
encouraged to leave comments. 


Number: 3/26 -Doze with Prose — 
Poetry 

Date : 10:59 p.m. Tues., May 19, 1992 
From : Paul #57 . 
Title ; More Poetry 


Today 
| remembered 
Our old phone number. 


Like a long ago children's 
rhyme 
It came back to me. 


| recall phoning late— 
On the road, still 
To tell you 
I'm OK; I'm alive. 
Sometimes breathless, 
Sometimes angry, 
You'd tell me 

—hurry home. 


A machine tells me that the 
number 

Is disconnected 

And | wonder 

Who calls you now? 


But more, 

| wonder 

Why | want to 

Still. 

—Paul May 27, 1990 


Into the Future 

Computers are the writing tool of the late 
twentieth century, but networks are play- 
ing a major role as writing moves into the 
twenty-first. If you write with a computer, 
you owe it to yourself to use this tool as 
something other than an electronic type- 
writer. Use it to exchange ideas with 
other writers, conduct research, submit 
articles and ideas to publishers, get 
feedback on your work, and more. 

You could never have this amount of 
power with a typewriter alone, so har- 
ness this power and put it to work for 
you. Writing is an ancient art, but the 
tools and technology associated with it 
are still growing. Don't be left behind! 0 


PO BOX 542 
LINDENHURST NY 11757-0542 


WE NOW CARRY | MINDSCAPE 
Hard Drives & 3.5 inch Drives!) POWERPLAYERS 
AT LOWER PRICES THAN) 
THE MANUFACTURERS! 
1.6 Megabyte 3.5"..... $ 215.00 
100 Megabyte HDD. $ 750.00 

Hardware Items Require 
Additional Shipping Fees ! 
Call Before Ordering! 
KEYBOARD SEELS 
DON’T LET YOUR 
COMPUTER SUFFER 
A MELTDOWN 
Protects your keyboard 
even while you type | 
(C64 or Vic 20.......# VS64 


6PACSETS 
PD & Shareware Sets 
JOYSTICK) 4 BIG HIT AT 
ONLY $5.00 
OREN. ear aes 
$5.00 | 4; 


QUICK GUNNE 
Joystick / Flyingstick 
4 seperate fire buttons 
to assure your comfort! 
(Trigger, Thumb, and 
both left & right base.) | B: ASST: SuperMario 
Hand Contoured Stick | C: MUSIC SET 

And 4 suction cups on 
the bottom of the base.| E: GEOS FILES i 
for complete control ! 
For serious gamers! 


H: HACKER PAC 
ONLY $ 15.00 | One eae 


COMMERCIAL SOFTWARE CLOSEOUTS J: Telecommunications| 
Original Packages ONLY $5.00cach! | ———_ 


Save your Commodore | 
ONLY $19.00 


PA }.00 |) 

PUFFY’SSAGA, PARADROID, | ear AC%2510.00) 

BLOCKOUT, | DIBHARD You must be over 18 | 
CLUBHOUSE SPORTS To receive this 6PAC! 


WE ARE ALWAYS ADDING NEW TITLES TO | Signature Required! 
OUR COMMERCIAL SOFTWARE STOCK! =| “#/ to request s more 
CALL TO SEE WHAT'S NEW THIS MONTH! | S<rptive 6 PAC list / 


SHIPPING $2.00 For First Item + $1.00 cach additional item 

U.S. Funds Only! *SORRY NOC.O.D.’s OR CREDIT CARD ORDERS 
FOR A FREE COPY OF OUR CATALOG, CALL: 

(516)-957-1110 MONDAY - FRIDAY 10am to 5 pm EST 


Circle Reader Service Number 162 


grams for your Commodore 64 or 128—already on 
disk! 


programs published in the corresponding issue of 
COMPUTE. 

New on the Gazette Disk! In addition to the 
programs that appear in the magazine, you'll also 
get outstanding bonus programs. These programs, 
which are often too large to offer as type-ins, are 
available only on disk—they appear nowhere else. 
As another Gazette Disk extra, check out 


Yes, save time and money! Subscribe to the Gazette 
Disk and get all the exciting, fun-filled Gazette pro- 


Subscribe today, and month after month you'll 
get all the latest, most challenging, and fascinating 


Big Blue Reader 128/64 - 4.1 


Transfers word processing, text, ASCII, and binary files between 

(64/128 and IBM PC compatible 360K 5.25" and 720K 3.5" disks. 

New Version 4.1 features: Transfers ASCII, PET ASCII and Screen 

Code files including: WordWriter, PocketWriter, SpeedScript, PaperClip, 

WriteStuff, GEOS, EasyScript, Fleet System and most others. 

Supports drives # 8-30. New Backup (C128) and Format (1571/1581) 

programs. Reads MS-DOS sub-directories, uses joystick, and more. 
Includes C128 & C64 programs. Requires 1571 or 1581 Disk Drive, 


Big Blue Reader 128/64 - 4.1 only $44.95 
Version 4.1 upgrade, send original BBR disk plus $18. 


Bible Search 3.2 


1. The entire Old & New Testament text on 4-1541/71 disks. 

. An Exhaustive English Concordance on 2-1541/71 disks. 
Indexes every word in the entire Bible; 700,000+ references, 

. Incredible five (5) second look-up time, per/word, per/disk. 
. Instant, automatic spell checking of more than 12,800 words. 
. Wildcard and boolean AND, OR & NOT search options. 
. Search the entire Bible in 5 seconds with 1581 or HD (v 3.52). 
. Money back guaranteed! 


KJV $49.95 | NIV $59.95 | KJV & NIV $90 
Includes: C64 & C128 programs; screen, printer and disk output; 
users guide, disk case. Available on 7-1541/71, or 4-1581 disks. 
«= Any questions? Call or write for more information. 
Also available! Amiga, Bible Search 
Order by check, money order, or COD. US funds only. 
t FREE Bookrate shipping in US. No Credit Card orders. 
Canada & Mexico add $4 S/H, Overseas add $10 S/H ($5 BBR) 


SOGWAP Software @ (219)724-3900 


115 Bellmont Road; Decatur, Indiana 46733 


“Gazette Gallery,” where each month we present the 
very best in original 64 and 128 artwork. 

So don’t waste another moment. Subscribe to- 
day to COMPUTE’s Gazette Disk and get 12.issues 
for only $49.95. You save almost 60% off the single- 
issue price. Clip or photocopy and mail completed 
coupon today. 

Individual issues of the disk are available for 
$9.95 (plus $2.00 shipping and handling) by writing 
to COMPUTE, 324 West Wendover Avenue, Suite 
200, Greensboro, North Carolina 27408. 


YES! Start my one-year subscription 
to COMPUTE’s Gazette Disk right away 
for only $49.95.* 


O Payment enclosed (check or money order) 


OCharge OMasterCard O Visa 
Exp. Date 

Signature 

(Required) 
Name 
Address 
City 
State/ ZIP/ 
Province Postal Code 


! 
| 
i 
| 
| 
i 
1 
| 
| 
| 
1 Acct. No. 
| 
] 
I 
i 
| 
| 
| 
1 
| 
1 


Mail to COMPUTE's Gazette Disk, P.O. Box 3250, Harlan, IA 51593-2430 


* Residents of NC and NY, please add appropriate sales tax for your area. Canadian 
orders, add 7% goods and services tax 


REVIEWS 


KEYDOS VERSION 2 


Version 2 of KeyDOS Function ROM 
for the 128 is similar to DOS for IBM ma- 
chines in that it lets you change drives 
easily and defaults to the chosen 
drive until changed again. KeyDOS 
ROM is a chip that contains 20 func- 
tion key definitions and 20 utilities. 

It includes Swapper, a utility that 
lets programmers work on one pro- 
gram in memory, call up KeyDOS to 
work in another program, and then go 
back to the original program. There's 
1581 Visual Partitioner, RAMDOS, 
GEOS SuperRBoot, Video Manager, 
and Hexpert. The main advantage to 
the KeyDOS program is that it makes it 
easy to switch drives. 

| was happy to find that installation 
was easy. It took 5 minutes to take the 
128's case apart, 2 minutes to install 
the chip, 15 minutes to vacuum out cat 
hair—hey, might as well while you're 
there—and 4 minutes to put the case 
back together, Subtract 15 minutes 
from this if you don’t own a cat. In oth- 
er words, this doesn't take long to in- 
stall, even for a nontechnician like me. 
On boot-up, the screen will say HOLD 
ALT KEY DURING RESET OR SYS 
65366 TO ACTIVATE KEYDOS ROM. 
Position cursor over the SYS line, hold 
Alt, and press Return. You'll get a cop- 
yright notice from author Randy Win- 
chester and a message telling you 
that KeyDOS is installed. Here's a list 
of how KeyDOS programs your func- 
tion keys and some other changes. 


fi—Load program 
f2—Run program 
f8—Disk catalog 
f4—Run 64 program 
f5—Type SEQ file 
f6—Scratch file 
f7—New active drive 
f8—Scratch and save 
Run—Boot disk/file 
Help—Drive # 


The Esc key offers many new com- 
mands when used in conjunction with 
other keys. Commands include Help, a 
compiler, a 1581 partitioner, a subdirec- 
tory key, a batch exec key, GEOS Su- 
perRBoot, CBM RAMDOS, Diskmon, a 
monitor dump, Hexpert, a drive renum- 
berer, an UNNEW commana, a screen 


G-10 COMPUTE AUGUST 1993 


dump, find and replace, an alternate 
screen, and more. KeyDOS is very use- 
ful for running a directory and for run- 
ning some programs. It's also cool for 
checking out SEQ files. It allows you to 
scratch an old file and rewrite a new 
file in one easy command. If you load 
it when you first power up, you can ex- 
amine what's on a disk without loading 
an extra program. 

The program goes downhill from 
there. | had trouble with the lockups 
and syntax errors. | needed to reset 
the 128 almost every third time | at- 
tempted different commands. The pro- 
gram includes a demo disk, but it 
wasn't helpful. It lists nine programs 
and four sequeniial files, but | was ei- 
ther denied access or else the 128 lock- 
ed up whenever | tried to load or run 
the programs. 

Two programs, Write-SEQ-File and 
Write-List-File, for instance, both tell me 
that | have no room. | must delete a 
function key’s programming and repro- 
gram a key for these programs, but the 
manual isn’t helpful in telling me how to 
do this. There are two separate func- 
tion keys for running 64 and 128 pro- 
grams. Unless you keep the 64 and 
128 programs on separate disks, 
there's no way of telling a 64 program 
from a 128 program. Having both 
types on one disk gives me an error 
message and forces me to reboot eve- 
ry time | choose the wrong program. 

The manual doesn't say which RAM 
expansion units work with KeyDOS. 
Since GEOS is the center of my world, 
| used geoRAM. | tried it and was told 
to put Desktop 2.0 on the REU, which 
| had already done. KeyDOS may 
work with another REU, but not with 
geoRAM. 

Don't worry if programs or files 
scroll off the screen when a directory is 
being listed. Go into Utility with Esc-1, 
and you have a lot of help at your fin- 
gertips. KeyDOS has 18 utilities: for- 
ward, back, select, unselect, toggle se- 
lection, select all, copy, select drive, 
directory, new disk/list, print, quit, re- 
name, scratch, type, unselect all, 1581 
subdirectory, and drive command. 
Type, for example, sends SEQ files to 
the screen in PETSCII, true ASCII, and 
Screen mode. 

This utility is great for renaming 
files, scratching files, and printing 


files, but it requires you to call up the 
directory again. The program doesn't re- 
display the directory by itself, but this 
is a small point. 

| gave an incorrect command to 
print, and then realized my printer was 
not hooked up. The program kept tell- 
ing me to redo from the start or enter 
a device number. It would have been 
handier to default back to the program. 
As it was, | had to reboot yet again. 

The compiler allows you to reassign 
functions to different function keys. You 
can save any new configuration to 
disk and reload it the next time you 
wish to use it. The 1581 Visual Partition- 
er lets you not only format a disk but al- 
so add a partition to a previously used 
disk. 

The monitor dump sends the moni- 
tor output to either a PETSCII disk file 
or a PETSCIl printer. Diskmon and Hex- 
pert should be very useful for machine 
language programmers. 

With KeyDOS you can renumber 
drives, reset drives, run new collect, res- 
cue a deleted program, execute pro- 
grams on the alternate screen, install a 
find/replace/scroll utility, execute a one- 
drive routine, and run Screen Edit, 
Clock Manager, and Video Manager. 

With Video Manager, you can 
change the cursor’s shape, flash rate, 
and blink rate. You can use an inter- 
laced monitor, and you can select 
from 80 colors for text and back- 
ground. The colors appear only as 
shades of gray on an RGB monitor. It's 
also possible to change the back- 
ground and text to the same color, mak- 
ing the text invisible. This can cause 
panic city the first time you do it, be- 
fore you figure out how to undo it. Be 
prepared for massive button pushing. 
| had to press f3 at least twice and 
sometimes three times before | could 
call up a directory. When | accidental- 
ly changed both text and background 
to the same shade of gray, it took 
three pushes to change the color. Of 
course, there's the good old reset but- 
ton (unless your screen is totally gray). 
KeyDOS is a specialized product that 
will appeal to some users more than oth- 
ers. Average users like me probably 
won't find it as useful as programmers 
will. If you're a programmer, you'll prob- 
ably love KeyDOS. 

DONNA CARLENE 


Antigrav Toolkit 

P.O. Box 1074 
Cambridge, MA 02142 
$32.50 


Circle Reader Service Number 414 


RISERS AND SLIDERS 


Step right up and grab a Slider! Hop 
on board and take a ride! No, I'm not 
talking about a new skateboard; I'm talk- 
ing about a new game from Micro- 
Storm that's called Risers and Sliders. 

When | first heard the name, | must 
admit, the first thing | thought of was 
the children's game Chutes and Lad- 


| REL, USR File, NEW features include: 


| Rename File/Partition/Header + Change Current Partition/Subdirectory 


RAMLina win 4 MB RAMCard 
Real Tere-Ciock for RAMCard (Optional) 


CMD Offers One-Stop Shopping to Commodore Owners 
Effective May 1, 1993 CMD acquired all rights to RUN software and has UN Mag. backissues | Microprose games Blank disks 3.5" 8 525° 
purchased all items from their inventory. As result, CMD will be offering one of RUNRCAUN software elec Pritt irteraces Misc. IC Chips 
the largest selections of Commodore 64/128 software and hardware available Abacus books & sottware | Electronic Ans Games | RAM Chips/SIMM's 
today. CMD's decision reinforces its commitmentto C-64/128 ownersworidwide. GEOS 2.08 applications | Skyies Electric Works and MUCH More 
Itis our hope that we can offer One Stop. to Commodore owners. It Timeworks Software 
we don't have it..we can probably find it! Here is a partial ist of products. For a 
complete list call or write for a free catal 


Dr. Ts Music Sofware 


Superbase & Superscript 
‘SOGWAP-Big Bive Reader! Mi 


CMD U A Powerful and Unique Collection of Disk Utilities 

| I les for Commodore and CMD Storage Devices 
FCOPY+ A two drive file copier featuring 1541,71,81, REU and CMD DIR SORT Alphabetizing utility for 1541,71,81 drives and all CMD 
device compatibility which is capable of copying any size PRG, SEQ, storage devices makes it easy to organize large directories, 


MCOMPARE Two drive aisk tity makes t " 
Scratch/Unscratch Files + Copy/Dolete C128 Boo! Sector: Disk/Parttion he accurancy ol a CMD partion against a disk copy. 
Creek ios Pompe, access DOS Commands thry Menus + LOCK’ FOLLOW LINKS Helps to locate and remove corrupt tes 
Unlock Files + Format Disk/Partition » Create/Remove Sub Directories + rane 


increased storage on 1541 disks altar MCOPY'ing to 1571 or partition. [74 


MCOPY Atwo cive whole ci/partion fe copler which supports CMD - a5 REWD ACG Clears memory in REU or RAMLinkDACG partion, [i 


storage devices and Commodore 1541, 71, 81 disk drives. 


[}] BCOPY+ A powertul backuprrestore utlity which backs up any CMD HO POWER TOOLS Alows editing of CMD Device Parton Table. 


Gevice or partition to a 1541,71,81 drive or CMD FD Series floppy drive. REBUILD PDIR Holpstorecover partitions aftercompletelyrecreating |) | 
‘This new version incorpoates the ability to dump an entire CMD device the system on CMD Devices, 

to an HD Sories hard drive, ‘Shareware Utilities Included: | 
FIND Searches specified partitions on CMD devices for files that match DEDIT64/128, SuperDEDIT64/128 Sort or manually editdirectories | 


s| 2 user defined filename pattern. Includes handy printer/screen toggle. subdirectories and partitions on 1541,71,81 drives and all CMD Devices. 


High Performance SCSI Hard Drive for the C64 &C128_ | | 


available in capacitos up to 200 MB, aro fuly parttionable, and |) 
|, 1571, & 181 disks whilo Native partitions utlize MSDOS-siyie 

subdirectories, HD's connect easily tothe serial bus or paralel via RAMLink. Includes bul: 

In JityOOS, SWAP feature and Feal-Time-Clock. HO Series Drives cttor superior 

Compatlity wth most commercial software including BBS, Productivity and GEOS. And |) 

with new pricing, HO Series drives offer the lowest cost 


ders. Then, | booted up the game and 
discovered a maze that vaguely resem- 
bles the mouse-shaped symbol that 
the Disney channel uses as a logo. Kid 
stuff, | thought again. However, when 
| began to play, | quickly saw how 
wrong | was. This game is definitely not 
geared to the preschool crowd. 

Risers and Sliders is an arcade ac- 
tion game that offers 50 increasingly dif- 
ficult levels of play. The game's title 
comes from the red-colored Risers and 
the blue Sliders that you use to move 
swiftly around the screen. The Risers 
move your character up and down; the 
Sliders move you from side to side. 
There are also wedge-shaped Sliders 
that are a cross between the other two 
transports. They move more or less di- 
agonally on the screen. Of course, you 
can also walk your character from 
side to side, but he can't jump or 
climb. Using combinations of the trans- Refurbished -dardware 


Power Backed Expandable RAM Disk and Interface | 

The fastest possible form of storage, RAMLink provides instant accozs to les and retains 
data while your compute is tured oft. Easy touse and expandable up to 16 MB, RAMLink |) 
utlzes the same powertl operating system [ound in the HD, RAMLink also ofers buit- | 

i JittyDOS, SWAP feature, reset button, enable'dsable switch, pass thru port and RAM 
port for REU/GEORAM use, ideal for those requiring maximum speed, expandabiity and [9 

ity wih al typos of software and hardware including GEOS 
10-4000 (00%, "6 MBané 32 8 Formas) aS ars 


FD Real Time-Clock Option 


Box of 10, Hgh Density Disks (68) i High Capacity 1.6 and 3.2 MB 3.5" Floppy Disk Drives 

‘The FD-2000 end FD-4000 disk dives ulize days latest Sinch technology FD-2000 fi 
‘Support 800K (1581 style) and 1.6 MB (High Density) formats, while the FD-4000's otter |) 
‘support for the 3.2 MB (Enhanced Density) format as well, Fast and reliable, they support [im 
1541, 1571 and 1581 style partttons, Native Mode partitioning and can actually read and 
wie '1581 dss, Fs feature buitn JtyCOS, SWAP bution and optonal RTC. High 
Capacity, speed and compatiblity maka the FO rightfor every application, including GEOS, 
Speeds up disk access by as much as 1500% while 
remenr rape x maintaining 100% compatibility with commercial software 
penttiedinte iho meer: + Speeds up Loading, Saving, Veriyrg, Forming and Reacing Wntng ol PAG, SEQ, USA ard REL fees Z 


fe] Cotene Unites narcy EOS nies BuitinDOS Wedge pus 17 additonal featuesincuding fle cope, textdup,prntortcoge andredefnaboinctonkeys fe 
fo] Perfect Print LO tor GEOS (Font Con 142, 49 Fonts) ROM upgrade instals easily into most computers and disk drives. Supports C-64, 64C, SX-64, 0-128, 128-D, 1541 
Font Collection 3(17 Fonts and $ Borders) 15410, 1541-1 1881 and more. 128 systam supports both 64 and 128 modes and upgraded Ki 


Bowder Font Colecton 1 (2 Bret Fors 2 
Creative Micro Designs, Inc. 


“StHyMON « ML. Mantes for JtyD0S 64 
E. Longmeadow, MA 01028 


iB 
HD-Series Hard Disk Drives 
HO-4, (Special Eon w 85 MB Ove) 
HO-100, (Special Ecttion wi 170 MB Drive 
B] 200, (Special Eaton wi 245 MB Drive) 
*, Floppy Disk Drives 
FO 2000 0K ara 6a Ferm) s 


UltfyDOS sows Comoarsove moo bul eer 
C6t Sytem (Computer & deve) 
SK 64 System (Compute 8 Irtral 1641) 
{©128 System (Computer & ve) 
H] 128.0 System Compuor& iriornal 1571) 
+} Aostiona Orve ROMS 
Software Products 
B]  peoMlakeBoct aes crt cape 9 EOS 4728 


Circle Reader Service Number 139 


Upgrade your Commodore system!! 
New APROTEK modems 


ports and walking, your goal is to || wontrors DRIVES OTHER 64/128/Amiga-2400 baud $119 

move through the mazes, gather all the ||1701- $219 1541- : 99 ey 38 user extech re 
i i i 702- $239 1541c- $109 64C-$11 onvert -a-Com 

eras ieee ean sOula: Hp your 1B02- tace 15411I-$139 128-$179 New CMD accessories 

score) ; 1802D-$279 1571- $169 128D$329 JiffyDOSC64/sx64 "system" $69 
It's not nearly as easy as it sounds. || y592- §299 1581- $179 1660$ 29 JiffyDos128/128D "system" $79 

Learning how to move around takes |] 1902a-$319 1001SFD$139 1670$ 49 128 Kernal $55 64 Kernal $45 

practice. You have to move your man |}1084- $329 1530 Datasette - § 39 Add’l JiffyDOS drive ROMs $35, 

over the transport and press the fire but- 1084S-$349 B.I. Buscard II- $ 59 Ramlink, RamcardII & bat. $ 


RL bat. $29 1Meg $59 4Meg $199 

Ramlink base$199 RamcardII$89 
NEW DRIVES! 

FD2000 $249 FD4000 $339 

Extended Density disks (10) $89 

We may just have it! 


ton while moving the joystick handle in 
the direction you want to travel. If you 
have good joystick skills, you'll proba- 
bly learn the game faster than | did. | 
have a tendency to overshoot the 
mark when |'m using a joystick. Do, 
that in this game, and you'll fall to your 
death. Even my joystick jockey teen- 
ager had to make several attempts be- 
fore clearing a level. 

For one thing, there's the pesky little 
critters called moths that can sneak up 


Books $10-15 Interfaces $35-$75 
Software $5-20 512k RAM Exp. $179 
Real Time Clock-extra $25 


Ask for anything! 


Send CDN funds/15%USA Ex. 


J.P. PBM Products By Mail 
15 day warranty on refurb. 


N.Sheridan Mall P. 0. Box #60515 
Downsview ON M3L 1B0 hardware 

Allow 4-6 weeks for delivery. TAX-Canada+7%GST, Ont.Res.+8%PST 
SHIPPING- (-$25=$4, -$100=10%, -$200=8%, -$499=7.5%, $500+=6%) 

NEW!! Catalogue Disk (64 format) - $2 (USA Ship. =15%) 


AUGUST 1993 COMPUTE G-11 


G-12 


C64/128 PUBLIC DOMAIN SOFTWARE 
REQUEST FREE CATALOG or send $2 for sample disk and catalog (RE- 
FUNDABLE). Categories Include education, utilities, games, business, 
PRINT SHOP graphics, pre-tested programs and more. Rent for 75¢ or 
buy as low as $1.00 per disk side or for 80¢ for 70 or more. $20 order 
gets 4 free disks of your choice. 

NEXT DAY SHIPPING! SINCE 1986 

Fences CALOKE INDUSTRIES (Dept. GK) =e 

= PO BOX 18477, RAYTOWN, MO 64133 a 


Circle Reader Service Number 181 


DEPENDABLE SERVICE FOR YOUR COMMODORE! 
C-64, 1541, C-128, or 1571: “AST TuRNAROUND! 


$25 .°° pus parts 
Send computer* or drive with name. ad- 
dress, phone, & describe problem. We'll 
call with parts estimate, then repair and 
return to you insured by UPS. Payment 
can be COD or VISA, M/C. Minimum 
charge, estimate only is $20. * Include power supply. 


503 East St. Dept.C 
TYCOM Inc. eld, MA Of: 


Pittsfield, MA 01201 


AUTHORIZED COMMODORE 
SERVICE CENTER 


ON ALL REPAIRS 


(413) 442-9771 


Circle Reader Service Number 242 


THE MOINS, ONG ELRRE 


C-64 or C-128 in 64 mode ME 
ARCADE/ROLE PLAYING GAME ed \? 


Assume the role of Circe and Pegasus! 2 
Battle wizards and dragon! a (at \ . 
$19.95 Check or Money Order ( { 
CREATIVE PIXELS LTO. 
P.O. BOX 592, LIBRARY, PA 15129 


Circle Reader Service Number 113 


COMPUTER REPAIR <se 


C-64: $40.00 1541: $54.95 64C: $50.00 
1541-Il: $64.95 C128: $64.95 6©€128D: $74.95 
1581: $64.95 ~ EIC..... 

WE ALSO REPAIR IBM Clones, Sega, Genesis, Nintendo 


For more info cal: BEAR TECHNOLOGIES 


Computer Sales, Service & Repair 
1005 McKean Street, Philadelphia, PA 19148 


215-336-5295 1-800-755-5295 


eS 


Circle Reader Service Number 152 


Label Maker- Use 11 pre-designed labels or create your own, floppy & micro 
disk labels, audio & video cassette labels, and more. Use your printer's font and 
color capabilities. Both Commodore 64 and 128 versions included. - $19.95 


Special - both for only $35.00 


Mail List Manager - Makes maillist management a snap! Print one record ata tme, pick and choose 
for exporting or printing, or print the entire list. Holds 300 records for each C64 list, 1000 for C128, transfer 
between lists. Use new label designs created with Label Maker. Both 64 and 128 versions included -$19.95 


SHIPPING: - U.S. $4.50, Canada $5.50, Intl. orders $12.00. Intl. orders paid by credit card or Canadian 
bostal money order only. Write for free catalog of Software and Leroy’s Cheatsheets. 


Keystone Software Dept.G P.O. Box 8369 Pittsburgh, PA. 15218 
412-243-1049 Fax: 412-731-2460 Hours: 9 to 5 Eastern Time 


Circle Reader Service Number 170 
COMPUTE AUGUST 1993 


on you. They move around the screen 
unfettered by transports and can 
pounce rather unexpectedly. Their 
bite is deadly to you, and you have on- 
ly three lives to lose. You can evade 
the moths, or you can attempt to kill 
them. You do that by smashing them 
with your transporter. It’s worth attempt- 
ing a kill since you'll earn an extra life 
if you manage to dispose of 12 of 
them. You'll also add five points to 
your score for each one of the moths 
you eliminate 

Another danger when traveling 
through the mazes is falling. Be care- 
ful where you step! One false step 
and—BOOM! You've lost a life. In the 
more advanced mazes you'll also 
need to know whether or not it's safe to 
take the diamonds. You'll soon discov- 
er how disastrous it can be if you 
guess wrong. By the way, you get one 
point for every diamond that you col- 
lect. Whenever you earn 200 points, 
you will get another life. 

The screen border helps you keep 
track of how well you're doing. In addi- 
tion to the typical score information, the 
border flashes whenever you earn an 
extra life. It flashes blue for earning a 
bonus life on points and red for earn- 
ing a life for slaying those pesky 
moths. You'll want to get as many 
lives as possible because the dangers 
increase as you advance in the game. 

With 50 levels, this game is quite a 
value. Some levels are complicated; 
some are deceptively simple. Each has 
its own dangers. The game's designer, 
Daniel Lightner, knew how challenging 
the game was, so he programmed in 
bonus points for you at the end of eve- 
ry level. You'll get 600 points if you fin- 
ish a maze in one try, 400 points for 
two tries, and 200 points for three at- 
tempts. If it takes you more than three 
attempts, you get zip. | played a lot of 
practice rounds (my name for games 
in which | died) before | earned any bo- 
nuses. Maybe you'll do better. The 
game will keep you busy for several 
hours. 

That reminds me. Did | mention the 
clock? Well, that's another little surprise 
the designer added as a booby trap. 
You have to complete each of the maz- 
es in five minutes or less. Now five min- 
utes may sound like a lot of time to 
you, but you'll be surprised how quick- 
ly it will pass. Trust me on that. | lost 
more than one life running around the 
mazes, avoiding moths, and forgetting 
about the time. | soon learned to keep 
a closer watch on my time. 

Lightner tried to pack the screens 
with as many diamonds and obstacles 
as he could. However, | believe he 
could have done a better job on the 
graphics. Risers and Sliders doesn't re- 


ally utilize the screen as well as it 
could have. The transporters are depict- 
ed as minuscule squares just a couple 
of pixels wide. Only their colors desig- 
nate them as anything special. The 
moths are a couple of tiny, intercon- 
nected loops. The fact that they were 
moving told me they were supposed to 
be the deadly moths. Even your char- 
acter is little more than a stick man 
that moves. I've seen better graphics 
on a 64, 

The attraction in Risers and Sliders, 
however, isn't the art. The difficulty of 
the game is its charm. | suspect once 
you discover this program, you'll keep 
coming back for more. 

MARTI PAULIN 


MicroStorm Software 

P.O, Box 1886 

Sidney, MT 59270 

$24.95 plus $3,00 for shipping and handling 


Circle Reader Service Number 415 0 


TYPING AIDS 


MLX, our machine language entry 
program for the 64 and 128, and 
The Automatic Proofreader are util- 
ities that help you type in Gazette pro- 
grams without making mistakes. To 
make room for more programs, we 
no longer include these labor-saving 
utilities in every issue, but they can 
be found on each Gazette Disk and 
are printed in all issues of Gazette 
through June 1990. 

If you don't have access to a 
back issue or to one of our disks, 
write to us, and we'll send you free 
printed copies of both of these 
handy programs for you to type in. 
We'll also include instructions on 
how to type in Gazette programs. 
Please enclose a self-addressed, 
stamped envelope. Send a self-ad- 
dressed disk mailer with appropriate 
postage to receive these programs 
on disk. 

Write to Typing Aids, COM- 
PUTE's Gazette, 324 West Wen- 
dover Avenue, Suite 200, Greens- 
boro, North Carolina 27408. 


Send new product 
announcements 
and/or press releases 
on your 
Commodore 64/128 
products to 
Tom Netsel c/o 
COMPUTE. 


COMMODORE 64/128 


PUBLIC DOMAIN 
SHAREWARE PROGRAMS 


CALL OR WRITE FOR FREE 
DESCRIPTIVE CATALOG OF 
COMMODORE 64/128 PUBLIC 
DOMAIN & SHAREWARE SOFT- 
WARE OR SEND $2.00 FOR DE- 


SCRIPTIVE CATALOG AND 
SAMPLE DISK. ADULT SOFT- 
WARE LISTING AVAILABLE TO 
THOSE OF LEGAL ADULT AGE. 


DISKS O'PLENTY INC. 
8362 PINES BLVD., SUITE 270 
PEMBROKE PINES, FL 33024 

(305) 963-7750 


Circle Reader Service Number 253 


RECORD FILER |) «cord Keeper =202 
FOR BUSINESS OR 1541 =570; 1571 =745. 


Original Print Shop Graphics 
Borders and Fonts. 


Western Heritage 
Turn your Print Shop & computer into 
a real old western printing press. 
Make real wild west wanted posters. 
Use 143 of the best wild west graphics. 


$24.95 + S/H $4.00in US. WA res, $1.95 tax 


PLUS S/H APO, FPO, AK, HI $6.00 @ UK $1200 @ 
AUSTRALIA $16.00 ® PAYMENT IN USA FUNDS 
@ CANADA cend $37.00 TOTAL in Canadian funds. 


Call now 509-276-6928 
C64 w Write for Free brochure * IBM 
Horse Feathers Graphics 
N. 27310 Short Rd., Deer Park, WA 99006 
Request 5 25 oF 3 5 for BM 


Circle Reader Service Number 234 


characters per record. Disk record capacity 
** Record Printout 1 or 2 columns. ***Mail 
3 columns. NO SET-UP-BOOK/MANUAL 


5 Label Printout 1, 2, or 
PERSONAL USE. 
Our easy to use Q Printer 
File Maker lets you enter 
your own printer's code or 
use as is with an Okimate 
20 or Okimate 180 printer. 
Standard or Italic print. 


NTERPRISES 
SOFTWARE 
P.O, BOX 77123 
WASHINGTON, OC 20013-7123 


Commod 


Logo us the property o! 


Ge 
c-6 


1541 Repair 
1571 Repair 


SX64 
PC-10. PC Cot Motherboard $110.00 


repair $37.95 


Prices include parts/labor. 

Except PS and drives. 

Discount for dealers & schools 
Prices subject to change without notice. 


NEEDED BUILT-IN INSTRUCTIONS-ALL YOU DO IS TYPE. Write- 
Read-Edit-List-Print-Delete; Fast Search by 4 methods/6 types + 
“Unique” Search searches and/or print from any set of unique letters in 
record. CORRECTION Routine restores files/limited power safeguard, 
PRINTOUT BY DATA FROM ANY OF 9 FIELDS. FIELD/CHARAC- 
TER SIZE; Name/$2 Addres/32 City/25 State/20 Zip/10 SS or LD/I1 
Phone #/12 Remark 1/30 Remark 2/30 total 202 Characters 

Screen for Color or Black and White. 

NOTHING HIDES FROM RFI - RELAX - LET RFI DO THE WORK 
FOR YOU!! BUILD A LIBRARY OF LIST DISKS WITH RFI. 
Cost = $39.95 + $4 S/H USA; Canada and Mexico + $6 S/H; Overseas 
+ $10 S/H. Check or Money Order Only! 2 to 5 weeks delivery. 


AMIGA & COMMODORE 
CUSTOM CHIPS 
and 
REPLACEMENT PARTS 

Lowest Prices Around 

THE GRAPEVINE GROUP INC. 

3 CHESTNUT STREET, SUFFERN. N.Y. 10901 
ORDER LINE: 1-800-292-7445 / FAX: (914) 357-6243 


INTERNATIONAL ORDER LINE: (914) 357-2424 
Write or call for prices 


™ 


16 Business Machines. Inc 


Circle Reader Service Number 159 


$63.00 
$42.00 
$52.00 
$66.00 


$70.00 
$87.00 
$125.00 
$67.00 


Amiga 500 BD 

Amiga 1000 BD 

Amiga 2000 8D 

All Commodore monitors 


128D — $70.00 


Computer Technologies 
1313-B Washington Ave. 
Titusville, FL 32780 
(407) 269-1081 
Toll Free 1-800-237-2835 


AUTHORIZED COMMODORE SERVICE CENTER 


AUGUST 1993 COMPUTE G-13 


Updates and 
corrections to 

earlier 

programs, a 

program 

that calculates chess 
rankings, and more 


G-14 


FEEDBACK 


Bug-Swatter 

Steven Bakke noticed that 
Fastball (January 1993) high- 
lights the wrong item when he 
makes a selection from the 
menu. To correct this prob- 
lem, load but do not run the 
program. Then, type POKE 
2133, 201 and press Return. 
Save this corrected version 
with another filename. 


James T. Jones of Klon- 
dike, Texas, points out an er- 
ror in the April “Programmer's 
Page.” When you run.Sequen- 
tial File Printer, you'll get a 
FILE OPEN error message if 
you select the Print File op- 
tion. To correct it, change 
line 190 to read as follows. 


190 PRINT#4,A$;: GOTO 160 


In the May issue, we pub- 
lished a review of Video Digitiz- 
er that is distributed by RIO 
Computers, At the end of the 
review, we inadvertently pub- 
lished the company's old ad- 
dress, The correct address is 
RIO Computers, 3310 
Berwyck Street, Las Vegas, 
Nevada 89121; (702) 454- 
0335. We regret the error. 


In “Screen Gems" (May 
1993), several readers spot- 
ted typographical errors in var- 
ious program listings. Bill 
Gisonda of Bethpage, New 
York, noted that lines 230 and 
240 of Brownian Symmetry 
should be numbered 250 and 
260 respectively. Also, lines 
150 and 230 should read as 
follows. 


150 IF Y > 100 THEN 80 
230 DRAW, (160=X)N,100-Y 


Donald Klich of Mount Pros- 
pect, Illinois, spotted other ty- 
pos, which just goes to show 
what can happen when type- 
setters have to enter listings 
without the aid of The Automat- 
ic Proofreader. Curve Explo- 
sion would look better if line 


COMPUTE AUGUST 1993 


10 were entered as follows. 
10 COLOR 1,2: COLOR 0,1: 
COLOR 4,1 


In Trig Show, lines 270 and 
280 had some problems with 
an extra colon and a missing 
Return. The lines should read 
as follows. 


270 IF BB=0 THEN DRAW , 
X*25.5,100-FNY(X)*30 

280 NEXT: WAIT 212,1: 
RETURN 


In January 1993, we print- 
ed a request from a 128 user 
in Syria who would like to cor- 
respond with other Commo- 
dore users around the world. 
Here is his correct address. 


Ahmad Husam Mukhalalati 
P.O. Box 10392 
Aleppo, Syria 


Chess Ranking 

| would like to start a chess 
club, and | have been looking 
for a program that calculates 
club members’ chess rank- 
ings. Could you give me 
some help with a program? 


VINCENT SULEWSKI 
SOUTH HADLEY, MA 


Here is a simple program 
that calculates rankings after 
players have completed ei- 
ther one or a series of 
games. As players compete, 
they should keep track of the 
number of games they play; 
their opponents’ rankings; 
and their overall score for 
wins, ties, and losses. 


AS 10 PRINT" {CLR}" 

GX 26 INPUT"NUMBER OF GAM 
ES PLAYED";G 

ME 30 DEFFNF(X)=(997 (X/80 
G)) /(1+ (997 (X/886) ) 
) :REM{2 SPACES}RATI 
NG FORMULA 

PX 46 INPUT"YOUR RATING"; 
R 

KA 50 PRINT"OPPONENTS' RA 
TINGS?" 

CE 66 FORB=1T0G 

KE 78 INPUT 0 

CP 88 X=R-0 

FP 96 IF X<-860 THEN X=-8 
6G 


ED 163 
GH 116 
RB 126 


D=D+ENF (X) 

NEXT 

INPUT"YOUR SCORE"; 
$:S=S-D 

IF R<2160 THEN 176 
IF R<2466 THEN 169 
S=S*16:GOTO 220 
S=S*24:GOTO 226 
S=S*32:1F R+S+.5>1 
NT (2099) THEN 226 
IF G<4 THEN G=4 

IF S>32+(3*(G-4))A 
ND R+S+S-(32+(3*(G 
-4)))<2166 THEN 21 
6 

GOTO226 
R=ER+S+S~ (324 (3% (G- 
4))):GOT0236 

R=R+S 

PRINT: PRINT"YOUR N 
EW RATING IS"; INT ( 
R+.5) 


DR 136 
JD 148 
JP 156 
MP 160 
HM 176 


MM 180 
XH 196 


KS 2066 
HJ 210 


GC 228 
GE 230 


EE 248 PRINT: PRINT"AGAIN? 
" 

HQ 258 GET AS: IF AS=""TH 
EN 250 

RA 266 IF A$<>"Y" THEN EN 
D 

CD 276 GOTO16 


A full-featured chess ranking 
calculator that keeps track of 
an entire club's standings 
would be too large to supply 
here. If a chess fan who pro- 
grams would like to submit an 
original program, we'll consid- 
er it for publication in the “Pro- 
grams" section. 


Scratched Commas 

In the March 1993 “'Feed- 
back,” you told how to 
scratch a filename that ap- 
peared in a disk directory as 
a comma. Your methods are 
fine, but there is a much sim- 
pler method. Simply enter the 
following line. 


OPEN15,8,15.‘'S0:?”:CLOSE15 


This question mark wildcard 
will erase any file whose 
name consists of but a single 
character. 


AL WILDERMUTH 
RIVERSIDE, CA 


Thanks to Al and all the other 
readers who replied with this 
simple solution that slipped 
Gazette's collective mind. 
Just check the directory first 
to see if there are any single- 


character files on that disk 
that you wish to retain. If so, re- 
name them before deleting. 


Interest Calculations 

As an active participant in 
IRA distributions, | was very in- 
terested in IRA Minimum Dis- 
tributions (April 1993). | was at- 
tracted to lines 980, 990, and 
1000 where the interest calcu- 
lations take place. 

Years ago, | got involved in 
interest calculations, especial- 
ly after | read in a mathemati- 
cal journal that it was impos- 
sible to calculate daily com- 
pound interest (yield) except 
by the one-day-at-a-time meth- 
od, as used in the article. 

As an engineer, | find the 
word impossible to be incom- 
-prehensible, so | devised a 
means for making long-term 
calculations easy. As pub- 
lished, the calculation for a 
sample 20-year projection 
and its 20-year payout sched- 
ule takes nine minutes and 42 
seconds. With my revision, 
the same calculation takes on- 
ly 7 seconds. 

Insert REM after line num- 
bers 980, 990, and 1000 to 
preserve the original code 
and then enter this line. 


985 SP=SP*EXP(1)1(365.25 
*LOG(1+IR65.25))+.001: 
SP=INT(SP*100)/100: 
RETURN 


The 365.25 allows for the ex- 
tra day in a Leap Year. 


LES WILLIS 
DELAND, FL 


Machine Language 

Over the years, your maga- 
zine has carried a column for 
machine language program- 
ming; however, | haven't 
seen any instructions on how 
to actually implement the infor- 
mation. Is a special program 
required? 

EARL WOODMAN 


DILDO, NF 
CANADA 


When you start learning ma- 
chine language, the first 
thing you need is an assem- 
bler. An assembler is to ma- 
chine language what the BA- 
SIC programming language is 
to programming in BASIC. It 
translates your commands in- 
to numbers that the computer 
can understand and use. 
Since it’s difficult to write a 
program entirely in numbers, 
an assembler replaces the se- 
quence of numbers with stan- 
dardized mnemonics, com- 
mands that humans can more 
easily remember and under- 
stand. Here's an example. 


10 * = 880 
20 LDA #147 
30 JSR 65490 40 RTS 


In this short program, when 
you enter SYS 880, the com- 
puter's screen clears. The 
147 is the number which 
clears the screen. LDA is a 
mnemonic that means Load 
the Accumulator, a special ar- 
ea in the computer. So 147 
goes into the accumulator, 
and the program moves on to 
the next instruction. JSR 
means that the program then 
Jumps to Subroutine at 
65490, which is the address 
in ROM which prints whatever 
character is currently in the 
accumulator. The screen 
clears, and the program 
moves on to RTS. This com- 
mand, Return from Subrou- 
tine, causes the computer to 
leave machine language and 
return to BASIC. 

This program is called 
source code, but you cannot 
run it as you would a BASIC 
program. The assembler 
takes this code and turns it in- 
to object code, poking num- 
bers 169, 147, 32, 210, 255, 
and 96 into memory locations 
880-885 

The computer doesn’t 
have any idea what to do 
with LDA, but when LDA is 
converted into 169, it knows 


to load the accumulator. It's al- 
so easier to remember LDA 
than 169. The 32 means JSR, 
210 and 255 is a two-byte ad- 
dress that represents 65490, 
and 96 returns the computer 
to BASIC (RTS). 

For those who don't have 
an assembler, we often print 
the code in the form of a BA- 
SIC loader. The computer's 
ML instructions are in the DA- 
TA statements. 


10 FOR A = 880 TO 885 

20 READ D: POKEA,D 

30 NEXT 

40 SYS 880 

50 DATA 169,147,32,210,255,96 


As with most Commodore 
software, finding a good com- 
mercial assembler such as 
Commodore Macro Assem- 
bler, Buddy 64, or Merlin64 
may be difficult these days, 
but a number of public do- 
main programs are available. 
Gazette's own BASSEM (April 
and May 1990) is still availa- 
ble on the Best of Gazette Util- 
ities Disk ($13.95). 


Resume Typing 

| have some suggestions 
which might help Jack Christ- 
law, who was was having dif- 
ficulty entering programs in 
one typing session. 

Whenever | wish to stop typ- 
ing, | save what | have using 
the number of the next BASIC 
or ML line of code as the file- 
name, This assures that I'll nev- 
er use the same filename 
twice and I'll always know 
where to begin again. | also al- 
ways use a fresh disk with on- 
ly MLX or Proofreader on it. 


ARNOLD JONES 
STONE RIDGE, NY 


Send your questions and com- 
ments to Gazette Feedback, 
COMPUTE Publications, 324 
West Wendover Avenue, 
Suite 200, Greensboro, North 
Carolina 27408. a 


about saving partial 


AUGUST 1993 COMPUTE 


G15 


G-16 


PD PICKS _ 


Steve Vander Ark 


MISCHIEVOUS 64 
AND MORE 


QuantumLink isn't the only 
place to find shareware and 
public domain files, but it's 
probably the best place. Q- 
Link has more files than any- 
body else—plain and simple. 

| have a copy of its catalog 
of files, a burly tome close to 
two inches thick and heavy 
enough to keep the door to my 
computer room shut against 
my one-year-old. This hernia- 
inducer makes a valiant effort 
to list all 35,000 of Q-Link's pro- 
grams and files. Yes, 35,000! 
Make no mistake; if you're se- 
rious about your Commodore, 
you belong on the Q. 

If you aren’t a Q-Linker, 
though, you can find good PD 
programs on any BBS that sup- 
ports the Commodore. The 
Rogue River BBS in Grand Rap- 
ids, Michigan, has all the files 
mentioned in this column. The 
phone number is (616) 361- 
8267. Of course, all programs 
mentioned here are also on Ga- 
zette Disk. Here are my PD 
picks for this month. 


Mille Bornes 

Original author unknown. 
QuantumLink filename: 
MILLE BORNES.3; uploaded 
by RolfB. 


| seldom play Mille Bornes. My 
wife and | bought it about ten 
years ago, and it's a great 
game. The problem is that | 
play it for blood, which is the 
way my wife plays Monopoly. 
That's why we don’t play Mo- 
nopoly either. So when | 
found this one-player card pro- 
gram buried in the 64 games 
section of Q-Link, | got all ex- 
cited. Now | could stomp some- 
one at Mille Bornes without hav- 
ing to sleep on the couch! 
This version of Mille Bornes 
isn't glamorous. It's entirely 
text with gameplay true to the 
original. You take turns with 


COMPUTE AUGUST 1993 


the computer, playing or dis- 
carding cards from your 
hand, trying to accumulate dis- 
tance toward a goal of 1000 
miles. Along the way you play 
cards against the computer's 
hand and try to inflict your op- 
ponent with all sorts of calam- 
ities, including flat tires and ac- 
cidents. You see where atti- 
tude can creep into the game. 

According to comments 
posted on Q-Link about this 
game, some of its more ob- 
scure rules aren't supported in 
this version. | wouldn't know, 
since | don't play the original 
enough to remember any of 
the more obscure rules! All | 
know is that this little gem of a 
game is addicting. 

The computer is a bland ad- 
versary, of course. | miss the 
scowl | used to get from my 
wife when | would gleefully 
slap down an accident card. 
She doesn't play Mille Bornes 
on our 128 much. She's too 
busy playing Monopoly on the 
IBM. 


Maximum Overdrive 

By Dan Komaromi. 
QuantumLink filename: OVER- 
DRIVE; uploaded by DigiDan. 


I'm not sure what category to 
put this piece of programming 
genius into—it's certainly not 
a game.But what the heck: 
Here it is, and it's absolutely 
my favorite 64 download of all 
time. Like | just said, it's not a 
game. It's not a utility either, re- 
ally. It doesn't exactly keep 
you glued to your monitor; in 
fact, it works the best when 
you aren't even around. 

Let me explain. Maximum 
Overdrive is the sneakiest buck- 
et of surprises you'll ever 
dump on your unsuspecting 
64. When you first run it, you 
are presented with a menu of 
interesting-sounding options. 
Once you make your choice, 
your beloved Commodore com- 
puter disappears and is re- 
placed by nothing less than its 


evil twin. Oh, it looks just fine— 
same blue screen, same friend- 
ly blinking cursor, same every- 
thing. But, oh, what horrors 
lurk within! 

For example, when you en- 
ter an innocent LOAD com- 
mand, the computer might 
snap back with LOAD IT YOUR- 
SELF! With another setting, 
your usually complacent 64 re- 
acts to a keypress by snarling 
that it's trying to sleep. It then 
turns off its monitor. 

There's a startlingly impres- 
sive self-destruct mode which 
really grabs your attention if 
you have the volume cranked 
up. There’s even an option 
which looks for all the world 
like you've accidentally con- 
nected with NORAD comput- 
ers somewhere and have 
launched a few missiles. 

The author, who calls him- 
self DigiDan on Q-Link, has 
had his programs published in 
several magazines, and his ex- 
pertise shows in the slick inter- 
face as well as in the nifty 
screen tricks. He includes 
some extra touches, such as 
allowing you to disable the 
Run/Stop key and type in your 
own bits of nastiness for the In- 
sult section. Koramoni em- 
ploys some excellent raster in- 
terrupt effects, a good dose of 
SID chip sound magic, and an 
oversized helping of clever- 
ness to make your 64 go off its 
electronic rocker. 

The general idea is to set 
up your computer with one of 
these fake startup screens 
when you are going to be 
away from your keyboard. 
Should some unsuspecting vic- 
tims try to use it, they'll be left 
wondering how they managed 
to make the whole system go 
kaflooie when they just typed 
a simple command. |'m not 
sure why | like this program so 
much because | don't have 
anyone to pull these tricks on, 
but | get a bang out of watch- 
ing them run. 

| know. Get a life! o 


Fun f Gr aphis 


Haye MACHIN! 
T CAN BE 


WH: 
vl Pmt te Be YOUR IMAGINATION, 
ISINESS CARDS 
‘custon LABELS 


sl 
ATED W 
STA FEW EXAMPLES? 


2. 
22, 
aan 

SEVxAmD 

<a 

BSn>5 

37 Dzz7 

~woce- 


T 
T 


PUTE 
UNTH 
Ews 
w 
0 
| 


QaROnP>an 
DVr=-on 


ING 
RAP, PHics MACHINE, 


L KEYBOARD OUERLAY ---$3.5) 
64, C128, SX-64) OR C64 IS SaipeeD 


DISK THIS IS A PREVIEW Je 
1S ALL ABOUT 


ULL te VERSION OF FGM 
AMAT $5.01 


CS MACHINE 
RAPHICS MAC 


FOLLOWING DISKS REQUI 


ES) 
SESOE =m 


>omom 
<>< 
Yoo 2 


AD 
a 
et 


Fem, ET Ee 
FGm UPDATE DISK V6.5 UPD 


PLEASE ADD FOR SHIPPIN 
GH eRe FoF AIR 


a) 
De -oeDDD 


on 
bt 
>: 
= 
mi 
21 
=} 
3 
= 
S 
m, 
= 
= 
| 
° 
= 
a 
Bx 


ct 


LIA 
ORAY HO. CHARGE CHADS 


The FGM Connection, P.0.Box 2206, Roseburg, OR. 97470 


FOR MORE INFORMATION CALL 503-673-2234 


UGUST 


SALE!! ie ~64 28 (-128 
wild 7/20 - 8/31/93 - 


Take 20% “off price belov! ‘plus/4 1 C-16 


SSeS AMM ET Of. Sifes, or ID /COST/ oH 
KJV Bible--2 sides Hus., A or 8 PS Grap Ganes 36/3544 

C: SpHario3 ,Krakout Poker i Ganes-Fin-Grafpx & DBase 06/ S+2 
D: 128 Potpourri -Util.--brod.--Educ.--Gane--Teleconn 06/ 5#2 
Es fle Combo --Utjl,--Prod.--Educ.--Gane--Telecona 06/ S¢2 
F: Bks-d8p Inst. Activities C= or Apple...fun...Logot Bk/ 1#2 
G: Ed Pak A Hath/Sci/Eng /Gen. Educ. = 145 programs 12/13+2 
H: Ed Pak 8  Math/Sci/Eng /Gen, Educ. = 600 prograns 06/7047 
J: GamPak A-d Hario Bros & Tetris Clones (64/64c/128] 02/ 9+1 
K: GawPak B-Trashnan, Starraider Air Denon, Outpost+ 02/ 9+1 
L: Prine 554 aales, females, children PS¢ + prearant 07/ 842 
Ht Disk Notcher-Use the backside of your 0S/0D disks! OK/ 341 
0: KJV Bible-+/4--Text files + 1 side of pleas 30/3044 
P: Game Pack C/C-128--60+-Star Trek - Concentration + 10/1342 
Q: Musique Classique---Husic by Bach, Chopin, others 03/ 7#2 
R: Pets - 347 Domestic aninals PS Graphics, & progs 05/10#2 
$: Sports-419 wix--Bsbll, Ftbl1/+ PS Graph. & progs 05/L0+2 
T: Cartoon Characters -A nixture of 202 PS Graphics 02/ #2 
U: Conptr Parade-255 PSG-Apple/ C= /IBK Logos, & wore 02/ S#2 
Yi Fastead Yt (Enhanced CAD 3.0) and support files 05/102 
W: Fun Graph Hachine Deno + UT +50 fonts tHi-Res Duap 03/ 6+2 
Xs 1941/71/81 Utilities--Readers/Copiers/Hovers, etc. 06/12+3 
Y: GEOS: Programmer Hanual-89p, & V1.0 Docunents-27p. 03 /8+2 
Please tents PSG ) A/3BLk/Non-C= or 8/2B1k/Comnodore Printer! 
»)))) Nat labje- Ita oe Poni t/4 BC-16 8 C-bd. MCKKK 
JH-00 att te Tine-Conbo of 25 Religious Progs. +/4/64 03/ +1 
JH-OL --Plus/4 Game Pack-- A combination of 150+ games 19/30+5 
JH-03 --C-16 Conbination of 50+ programs. Runs of +/4. 02/ dtl 
JH-05 --H.A.L.(update)-Assenbler +/4 & Speedscript +/4 04/ 941 
Send SASE for info. on HEHL itens, golden oldies, & new iteas, 
CATALOGS: C64/128-47p-$2+2 - +/4-18p~ MHL ax Pyat: MO/CHK (US$) 
Ca, Res. +8.25% tax/iten total No C00’s! Shipping--USPS 
TO Kenneth Franklin/KFPO Software-P0B 470464-LA,Ca. 90047-0464 

PO Select Library aainly. We are in our third year! Thanks! | 


Circle Reader Service Number 197 


If you own a CMD device, you 
NEED the Compression Kit 


NEW! 


THE COMPRESSION KIT 
$39.85 


ckup. Sseyiieaiuring fast data 
; commodore 64/128 


jers away and 


te 
ives, 1541 1571/ 
Hard 


r that puts 


for $39, 95 t to: 


Mad Man Software 
1400 East College Drive 
Cheyenne, Wy. 82007 
For order info call ...1(800)34-MADMAN 
For general info call.......1(307)632-1178 
For fax inquires. 1(307)637-4883 


Be sure to enclose a return address. No P.O.Box 
numbers please. 


Circle Reader Service Number 260 


SOFTWARE CLOSEOUTS 


For Commodore 64 & 128 
ANY ITEM IN THIS AD.... ONLY $5 


BUY 10, GET 1 EXTRA FOR FREE!! ALL PACKAGES ARE NEW SEALED BOXES. 
SUPER EXPANDER 64, STARCROSS, ALCON, UNDER FIRE, MACBETH, RASTAN,| 
BUBBLE BOBBLE, PET EMULATOR, ARKANOID, ARKANOID 2, QIX, SKY SHARK, 
CHAMPIONSHIP BASEBALL, DAMBUSTERS, DEADLINE, ONE MAN & HIS DROID, 
PLASMATRON, PRO-GOLF, SPITFIRE ACE, HELLCAT ACE, SUSPENDED, ZORK 2, 
ZORK 3, SILENT SERVICE, RENEGADE, ARTURA, BUTCHER HILL, CONFLICT IN 
VIETNAM, REVENGE OF DEFENDER, FINAL ASSAULT, PRESIDENT ELECT, 
GHOSTBUSTERS 2, SKATE WARS, PUFFY'’S SAGA, CHESSMASTER 2100, 
SONGWRITER, TERROR, SUSPECT, GHOSTWRITER 128, RICK DANGEROUS, 
T.V. SPORTS FOOTBALL, EASY SPEECH, SPACE HARRIER, M.A.C.H., F-15 
STRIKE EAGLE, AIRBORNE RANGER, RAMBO 3, FAST BREAK, ACROJET, 
HEROES OF THE LANCE, NETHERWORLD, XENOPHOBE, DIE HARD, TAKE 
DOWN, THE GAMES:WINTER, THE GAMES:SUMMER, GOLDEN OLDIES, 
WORLD'S GREATEST FOOTBALL, MINDSHADOW, SKYFOX, PITSTOP 2, RAW 
RECRUIT, WHEEL OF FORTUNE 2, ACE OF ACES, TOP GUN, TOWER TOPPLER, 
MANIAC MANSION, BEYOND THE BLACK HOLE, ROADWARS, CALIFORNIA 
GAMES, DREAM TEAM, SERVE & VOLLEY, DEVON AIRE, FIREZONE, FIGHT 


NIGHT, JET BOYS, SUPER SUNDAY, BOP 'N RUMBLE, TRI-MATH, TECHNO-COP, 
MAGIC MADNESS, TURTLE TOYLAND JR., RAMBO, STATIS PRO BASEBALL, 
SGT. SLAUGHTER, CLUBHOUSE SPORTS, DIG DUG, CUTTHROATS, 


CROSSBOW, COMICS, KIILLED UNTIL DEAD, PS! 5 TRADING CO., COMPUTER 
DIAGNOSTICS, PRO TOUR GOLF, COSMIC RELIEF, TAU CETI, GREAT ESCAPE, 
ARMY MOVES, CAPTAIN FIZZ, INTO THE EAGLE'S NEST, GAUNTLET 2, 
BOSTON COMPUTER DIET, BAD DUDES, BATMAN CAPED CRUSADER, 
MONDAY NIGHT FOOTBALL, ROBOCOP, EYE OF HORUS, MATH MAZE, 
DESIGNASAURUS, EUROPEAN NATIONS, PRO TENNIS TOUR, B.A.T., 
WARLOCK, THUD RIDGE, DARK CASTLE, SUMMER GAMES 2, WINTER GAMES, 
IMPOSSIBLE MISSION 2, SUB BATTLE, WORLD GAMES, TONY LARUSSA 
BASEBALL, PARALLAX, SPY VS. SPY, NINJA, PENSATE, QUEST OF THE SPACE} 

BEAGLE, MAXWELL MANOR, PLAQUE MAN, BATTLESHIP, GUDERIAN. 


MENTION THIS AD TO RECEIVE THE $5 PRICING & FREE BONUS ITE! 


‘0 ORDER: Send check or money order, 
VISA/MC ORDERS CALL TOLL-FREE [nipping charges of $5 for USA. Sb force 


II others, California addressesmust include 728% 
jsales tax. To check for an item not listed 
544-6616. 


aa ay rice Pea 
COMPSULT - 
WE HAVE LOTS MORE C-64/128 PLU: 
P.O. BOX 5160 TONS OF SOFTWARE FOR IBM, 
SAN LUIS OBISPO, CA 93403) APPLE, MAC, AMIGA, ATARI & MORE! 


Circle Reader Service Number 114 


Read a file 

with BASIC’s INPUT# 
statement and 

chop any extra 
Returns that 

may Cause a crash. 


G-18 


MACHINE LANGUAGE 


Jim Butterfield 


FILE-END TRIMMER 


Last time, we learned that a 
file that ends with more than 
one return can cause trouble 
when used with the BASIC IN- 
.PUT# statement. Now, let's 
write a program to detect and 
correct this problem. 

A BASIC program will poke 
the ML code into place. 
Phase 1 then checks the file, 
and phase 2 copies the file, 
chopping any extra returns. 

The detection phase uses a 
brief ML program at $2200, 
decimal 8704. The file is cor- 
rected, if needed, by a longer 
ML program at $2217, deci- 
mal 8727. This is the code 
we'll examine here. 

File-copying programs 
must deal with ST, the status 
word, found at address $90. 
We must read the ST value 
right after we reference a file 
so that it won't be changed by 
some other file activity. 

Our program reads from 
one file and writes to another. 
We must check ST (for end-of- 
file) after each read. We have 
an input character to dispose 
of, SO we may need to write to 
the output file before we act 
on the end-of-file signal. 

We'll test ST right after per- 
forming an input and push the 
test results to the stack. Later, 
we'll act on those results. 

Here’s a second puzzle. 
Our task is to remove extra re- 
turn characters from the file 
end. But, as we read the file, 
we don't know if we're near the 
end. We must not copy re- 
turns until we know it's safe. 

When we read a return char- 
acter from the input stream, 
we won't output it. We'll count 
it, using location $2100 as a 
counter. If we find more text, 
we'll output the correct num- 
ber of returns before continu- 
ing. I'll comment on selected 
Parts of the program. 

Initial code zeroes the count- 
er at $2217. We enter the main 
read loop, and the input 


COMPUTE AUGUST 1993 


stream switches to logical file 1. 

We grab a character and 
test the ST variable, pushing 
the result to the stack with PHP. 


2221 JSR  $FFE4 
LDY $90 
PHP 


We skip ahead if we didn't 
get a return. Return needs spe- 
cial work: We count it and 
then check to see if we're at 
the end of the input file. That 
information is on the stack, re- 
member? If we're not at end- 
of-file, we keep reading. 


CMP #$0D 
BNE $2237 
INC $2100 
PLP 

BEQ $2221 


If it's a return at the end of the 
file, we push the test results 
back on the stack and zero 
the counter to get rid of the ex- 
cess returns. 


PHP 
LDY #$00 
STY $2100 
The program reaches 


$2237. Either we've received 
a character (still in the A reg- 
ister) which is not a return, or 
we're at end-of-file. Push the 
input character to the stack, 
disconnect the input stream, 
and hook the output stream 
to logical file 2. 


2237 PHA 
JSR S$FFCC 
LDX #$02 
JSR = $FFC9 


Is the return counter 0? If 
so, skip the next bit. 


LDX $2100 
BEQ $2250 


Location $2245 sends the re- 
turns using a loop. We'll omit 
that code. The next step out- 
puts the character that was 


received. 

2250 PLA 
JSR $FFD2 
JSR = $FFCC 


We check the end-of-input 
condition, still on the stack. 
We either loop or quit. 


PLP 
BEQ $221C 
RTS 


Here's the whole program in 
the form of a BASIC loader. 


ES 100 PRINT "FILE END TRIMMER 
- JIM BUTTERFIELD" 
DATA 162,1,32,198,255,1 


69,0,141,0,33,32,228,25 
5 


XR 110 


GS 120 DATA 164,144,240,246,14 
1,1,33,76,204,255 

DATA 169,6,141,8,33,162 
71,32,198, 255 

DATA 32,228,255,164,144 
,8,201,13,268,12 

DATA 238,5,33,40,240,24 
0,8,160,0,140,0,33 

DATA 72,32,204,255,162, 
2,32,201,255,174,0,33 
DATA 24G,11,169,13,32,2 
16,255,202,208, 248,142, 
0,33 

DATA 104,32,210,255,32, 
204,255,40,240,194,96 
FOR J=8704 TO 8794 

READ X:T=T+X 

POKE J,X 

NEXT J 

IF T<>11245 THEN STOP 
INPUT "NAMF OF FILE"; FS 
JQ 310 OPEN 15,8,15 

PJ 320 OPEN 1,8,2,FS 


AQ 136 
HQ 140 
HM 150 


PC 160 


GB 330 INPUT#@15,E,ES:IF E<>@ T 
HEN PRINT ES:STOP 
QH 346 SYS 8704 


SB 350 CLOSE 1 

SD 360 CLOSE 15 

IF PEEK(8449)<>13 THEN 

{SPACE}PRINT "FILE DOES 
NOT END WITH <RETURN>. 
"SEND 

IF PEEK(8448)<>13 THEN 

{SPACE}PRINT "FILE ENDS 
WITH A SINGLE <RETURN> 
-"2END 

PRINT "FILE ENDS WITH M 
ULTIPLE <RETURN> CHARS. 


SE 380 


XS 393 


XB 400 INPUT "SHOULD I CLEAN I 
T UP?";X$ 

XS=LEFTS (X$,1) 

IE X$<>"¥" THEN END 
INPUT "NAME OF REVISED 
{SPACE} FILE"; R$ 

OPEN 15,8,15 

OPEN 2,8,3,"0:"+RS+",S, 
wt 

INPUT#15,E,E$:1IF E<>0 T 
HEN PRINT E$:STOP 

OPEN 1,8,2,FS 
INPUT#15,E,E$:IF E<>0 T 
HEN PRINT E$:STOP 

QE 499 SYS 8727 

QM 5G CLOSE 1 

PP 516 CLOSE 2 

EQ 528 CLOSE 15 o 


HP 410 
AF 4208 
AD 439 


AH 440 
Ds 459 


MK 466 


PF 470 
ce 486 


The Gazette 
Productivity 
Manager oy, 


Harness the productivity SS 
A 


power of your 64 or 128! 


Turn your Commodore into 

a powerful workhorse, keep track 
of finances, generate reports 
in a snap, manage your 
money in minutes— 

all with the 

Gazette Productivity 
Manager! Look at all 
your 64/128 Productivity 
Manager disk contains. 


GemCalc 64 & 128— 

A complete, powerful, user- 

friendly spreadsheet with all 
the features you'd expect 
in an expensive commercial package 
(separate 64 and 128 versions are included). 

Most commands can be performed with a single keypress! 


YOUR GAZETTE 
PRODUCTIVITY 
MANAGER 
TODAY! 


Memo Card—Unleashes the power of a full-blown 
database without the fuss! Nothing’s easier—it’s a 
truly simple computerized address file. Just type in 
your data on any one of the index cards. Need to edit? 
Just use the standard Commodore editing keys. 
Finished? Just save the data to floppy. What could be 
easier? 


(MasterCard and Visa accepted on orders with subtotal over $20). 


CLYES! Please send me Productivity Manager disk(s) 

($14.95 each). 

Subtotal 

——____ Sales Tax (Residents of NC and NY please add appro- 
priate sales tax for your area. Canadian orders, add 
7% goods and services tax.) 

—____ Shipping and Handling ($2.00 U.S. and Canada, $3.00 
surface mail, $5.00 airmail per disk.) 


Financial Planner—Answers all of those questions 
concerning interest, investments, and money manage- 
ment that financial analysts charge big bucks for! You 
can plan for your children’s education and know 
exactly how much it will cost and how much you need 


to save every month to reach your goal. Or, decide 
whether to buy or lease a new car. Use the compound 
interest and savings function to arrive at accurate 
estimates of how your money will work for you. 
Compute the answer at the click of a key! 


DON’T MISS OUT ON THIS 


POWERFUL WORKHORSE! 


Total Enclosed 
— Check or Money Order 


Credit Card No. 


—MasterCard _ VISA 


Signature 


(Required) 
Daytime Telephone No. 


Name 


Address 


city 


State/ up/ 
Province Postal Code 


Send your order to Gazette Productivity Manager, 
324 W. Wendover Ave., Ste. 200, Greensboro, NC 27408. 


This column 
celebrates its fifth 
anniversary with 
some more great tips 
sent in by readers. 


G-20 


PROGRAMMER’S PAGE 


Randy Thompson 


HAPPY 
ANNIVERSARY! 


“Programmer's Page” is five 
years old this issue! It made its 
debut in the August 1988 edi- 
tion of Gazette. I'd like to take 
this opportunity to thank all of 
my readers for your interest; 
support; and, most important, 
your great contributions. This 
column, after all, is a forum for 
your programming expertise. 
To celebrate our anniversary, 
I've assembled a few of the 
best ‘Programmer's Page” 
tips ever published. 


Selective RESTORE 
This bizarre tip—written by 
yours truly—comes from the 
very first “Programmer's 
Page.” This short routine re- 
stores BASIC's data pointer to 
any line number, just like the 
128's RESTORE command. 
To use it, execute the follow- 
ing instructions once within 
your program. 
BD 16 POKE 784,108:POKE 785,12 
2:POKE 786, 
PQ 20 DEF FN RS(N)=USR(N)+POS( 


" {A}LUF {TH{2 EFP<{GP< 
L'¢2 £}") 


Then, add the following com- 
mand to your program. 


X=FN RS(/ine number) 


In this case, line number is 
the line number of the DATA 
statement at which you want 
your program to READ. In oth- 
er words, RESTORE to this 
line. The line number can be 
a number, variable, or even 
an expression such as 
1000+1*10. If you want, you 
can replace X with a variable. 
Just be warned that the value 
of the variable used will be 
scrambled. 

Be especially careful when 
entering line 20. A single typo 
could cause the computer to 
lock up when the program is 
run. Note that there are no 
spaces between the USR 


COMPUTE AUGUST 1993 


statement, plus sign, or POS 
statement. 

To ensure accurate typing, 
use The Automatic Proofread- 
er; see “Typing Aids” else- 
where in this issue. To help fur- 
ther, here's an English transla- 
tion of how to enter those 
weird characters found within 
quotation marks in line 20: 
space, Ctrl-A, Commodore- 
U, space, Ctrl-T, two Commo- 
dore-English Pounds, Shift-F, 
Back Arrow, Commodore-G, 
Back Arrow, L, single quote, 
and two Commodore-English 
Pounds. 

If you're looking for a chal- 
lenge, try to figure how this tip 
works—without looking in the 
August 1988 Gazette. 


MIDS Magic 

Most programmers use BA- 
SIC’s MID$ function on the 
tight side of an equal sign, as 
in A$=MID$(B$,3,1). On the 
128, however, MIDS can also 
be used on the left side. For 
example, if AS equals 
123456789 and BS equals 
ABC, the instruction MID$ 
(A$,4,1)=B$ sets A$ equal to 
123A56789, while the instruc- 
tion MID$(AS$,4)=B$ sets AS 
equal to 123ABC789. 

Using this technique, you 
can stuff one character or a 
group of characters into the 
middle of another string with- 
out juggling LEFTS and 
RIGHTS functions. Credit for 
this useful string-handling ad- 
vice goes to Michael Ver- 
diguel of Lawton, Oklahoma. 


Unscrollable Lines 

Here’s a short machine lan- 
guage subroutine from Sean 
Ganess of Woodside, New 
York, that protects the top two 
lines from being scrolled off 
the screen. You can still print 
text to these lines and erase 
them by clearing the screen, 
but they are unaffected by 
scrolling text. You might want 
to use this feature to display 
such things as your location 


in an adventure game or to 
show the disk drive status in 
a utility program. 


FR 10 GOSUB 3000:END 
GF 3000 FOR I=828 TO 875:READ 

{SPACE}D:POKE I,D:C=C+ 
D:NEXT 

IE C<>6376 THEN PRINT 

{SPACE}"ERROR IN DATA 

{SPACE} STATEMENTS" : END 


XK 3010 


CF 3026 SYS 828:POKE 59639,1:P 

OKE 64982,53:POKE 1,53 

HQ 3636 RETURN 

FJ 3040 DATA 169,0,132,38,169, 
224,133,39,177,38,145, 
38,266,208,249,230,39, 
165 

QA 3G5@ DATA 39,201,0,208,241, 

160,0,132,38,169,160,1 

33,39,177,38,145,38,28 

6,208 

DATA 249,230,39,165,39 

201,192,208,241,96,0 


KJ 3060 


To use this program, simply 
GOSUB 3000 whenever you 
want to protect the top two 
screen lines. This subroutine 
needs to be executed only 
once when your program is 
first run. 


Missing Data 

Neglecting to put numeric da- 
ta between the commas in a 
DATA statement is the same 
as including the digit 0. For ex- 
ample, check out the follow- 
ing program. 


10 FOR I=1 TO 10: READ D: 
PRINT D:NEXT 
20 DATA , 5555545 


Line 20 produces the same re- 
sults as the following. 


20 DATA 0,0,0,0,0,0,0,0,0,0 


If you are reading string da- 
ta—as in the command READ 
D$—the missing data is inter- 
preted as a null string. This 
tip came courtesy of Doug 
Ross of Merrickville, Ontario, 
Canada. 


Send your programming tips 
to Programmer's Page, COM- 
PUTE’s Gazette, 324 West 
Wendover Avenue, Suite 200, 
Greensboro, North Carolina 
27408. We pay $25-$50 for 
each tip that we publish. O 


Gazette 
Index 


Everything’s included! 
Features, games, reviews, 
education/home applications, 
programming, bugswatter, 
feedback, and columns! 


A superb interface includes pull- 
down menus, help screens, and 
keyboard, joystick, or mouse con- 
trol. Features include super-fast 
searching and sorting capabilities. 
An options screen allows you to 
choose text colors, drive number, 
and input device. And there’s full 
documentation on disk. 


Choose from three modes of opera- 
tion—browse for quick scanning, 
view for detailed information and 
descriptions, and edit for adding 
items from upcoming issues—and 
print to any printer. There’s even a 
turbo-load option for maximum 
disk-access speed. 


ORDER YOUR 
GAZETTE INDEX 
TODAY! 


(MasterCard and Visa accepted on 
orders with subtotal over $20.) 


To order, send $7.95 per disk, the 
quantity of disks ordered, check 

or money order,* your name and 

complete street address: 


Gazette Index 

324 West Wendover Avenue 
Suite 200 

Greensboro, NC 27408 


* Please add $2 shipping & handling ($5 foreign) for 
each disk (residents of NC, NJ, NY please add appli- 
cable sales tax; Canadian orders, add 7% goods 
and services tax). 
All payments must be in U.S. funds. Please allow 4 
weeks for delivery. 


KeyDOS ROM Version 2 is here! 


The KeyDOS ROM is a chip for the empty socket inside your C128 that adds more than 40 
powerful features, KeyDOS is available instantly as soon as you switch on your 128! 
KeyDOS js loaded with useful tools to simplify file access on multiple drive systems without typ- 
ing file names—all major DOS functions included. Select multiple files for copying, viewing, 
printing, renaming or scratching. ASCII/CBM/Screen code converter, Full support for 1581 
subdirectories. Built-in RAMDOS for REUs up to 2MB. New GEOS SupeRBoot. 

Alarm clock. Disk editor. Powerful debugger. 

Only $32.50. Satisfaction Guaranteed! Write for more information. 
Enhance your system with the speed and convenience that KeyDOS provides! 


Antigrav Toolkit, PO Box 1074, Cambridge, MA 02142 
Shipping outside of US, Canada and Mexico add $3 


Circle Reader Service Number 244 


NEW GEOS SOFTWARE 
THE LANDMARK SERIES 


Dual Top - The PREMIER Desk Top replacement. Provides full four drive support, RAM drive 
priority system, one click access to major file functions, comprehensive error reports, full set of 
keyboard shortcuts, multiple user options nl many more features. 40 and 80 col modes. 


GeoSolitai 
Checkerboard - Pla 
To 


REU users: Battery Back any 17xx, or ‘GEORAM, with the BBU. Use with GEOS (V1.3 up), 
RAMDOS or other programs that use REUs. Great for BBS. No heavy power supply needed. 
GEOS users: BBGRam, Battery backed RAM for GEOS 2.0. A fast, reliable altemative to 
mechanical drives. Supports all drive types, multiple partitions and alternate DESKTOPs. 


PERFORMANCE PERIPHERALS, Inc. 


5 Upper Loudon Road, Loudonville, NY 12211. 

US orders, literature: 800-925-9774. Tech support, orders, FAX: 518-436-0485. 
BBU $59, BBGRam 512K $89, BBGRam 1M$119, BBGRam 2M $159. 
US S&H $8. US COD $4. Canada & Mexico S&H $10. Other countries S&H $19. 

30 day money back guarantee. £0 day warrantee. Master Card / VISA welcome. 


Circle Reader Service Number 153 


- ‘the MOST POWER for the BUCK’ 

Qi | Nn wer that only AMIGA owners have enjoyed until now" 
im = fates an A-... pushes the C-128 to the edge of the graphics envelope’ 
RUN Oct. 1991 

= 640 by 400 pixel — that 

T= Inter lace! ATLEAST DOUBLE the see ured by Ey olka propia software 

T= Incredible! 1 Paint 's Iiuerace s sereen offers the unique ability to blend colors for 
Supports 24 pin, COLOR, & LASER Printers, & RAM Expansion! 


I Porta. trectescen 


Manager 


g0714 
oy GIF, MAC, GEOS, Basic8, Doodle, Print Shop! PO Box 
Expon I Paint GIF! Define ction GIF pales! Minneapolis, MN 


NOW Version 1.2 - UP TO 3 TIMES F/ 
Prices for U.S.A. Check or money ordar only. MN res. add 6-1/2% sales tax. Alow 2 - 4 weeks for delivery. 


Circle Reader Service Number 146 


Fast Action Arcade Style Game 
for the Commodore 64/128+1541 


; $24 95 plus $3 Shipping and 
Sliders e Handling in the U.S.A. 
S/H in Canada $5 and $10 for all others. 
— American Currency Only — 


Rand Cues feroStorm Software. 
Order to: Box 1086, Sidney, MT 59270 


Circle Reader Service Number 289 


G-21 


How many 
combinations of 
fives, tens, 


and twenties can you 


G-22 


find that 
will total $200? 


BEGINNER BASIC 


Larry Cotton 


BUCKS IN A POT 


Let's get back to reviewing BA- 
SIC statements, specifically 
FOR-NEXT loops. Here's a 
quick review. FOR-NEXT (or 
FOR/TO/STEP/NEXT as the 
Commodore 128 Program- 
mer's Reference Guide calls 
it) executes repetitive loops. 
We've seen how each FOR- 
NEXT loop requires seven sep- 
arate and distinct elements 
and how STEP can be less 
than 1, more than 1, or aneg- 
ative value. (Omitting STEP 
yields a step size of +1.) Here 
are some simple examples. 


10 FOR J=1104 
20 PRINT J 
30 NEXT 


10 FOR J = .5 TO 3.5 STEP .5 
20 PRINT J 
30 NEXT 


10 FOR J = 10 TO 1 STEP -2 
20 PRINT J 
30 NEXT 


A very common use for 
FOR-NEXT is to load arrays. 
We've studied arrays in this 
column before, but if you 
don't understand or remem- 
ber them, we'll get back to 
them soon. For now, just 
think of an array as a group of 
pigeonholes that need num- 
bers stuffed into them. The pi- 
geonholes_ usually have 
names such as A(1) or B(4). 
Here's how to fill a small one- 
dimensional array using a 
FOR-NEXT loop. 


10 FOR J=170 10 
20 A(J) = 25 
30 NEXT 


This simple pigeonhole 
stuffer will make each varia- 
ble A(1) through A(10) equal 
to 25. Here’s how you can 
make the variables equal the 
counter as it's increased. 


10 FOR J=110 10 


COMPUTE AUGUST 1993 


20 A(J) = J 
30 NEXT 


You can read DATA state- 
ments and place them into 
the arrays, too. 


10 FOR J=11T07 


50 DATA 12, 2, 52, 41, -3, 3.5, 
-7.34 


After this program runs, 
A(1) will be 12, A(5) will be 
-3, and so on. 

Let's take another look now 
at nested FOR-NEXT loops. 
Here's an example. 


10 FORA=11T03 

20 FORB=31T04 

30 PRINT “‘A="A,"B="B 
40 NEXT B 

50 NEXT A 


The A loop is the outer one, 
and it loops a total of three 
times. The B loop is the inner 
one, and it loops twice for 
each value of A. The use of 
the variable names after 
NEXT is optional, but it can 
help keep things straight. 

Now, let's get to the meat 
of this month's column. The 
other day, a friend called to 
ask for help with his third- 
grade son Derek's homework. 

The problem, as we under- 
stood it, was to calculate how 
many combinations of twen- 
ties, tens, and fives could be 
in a pot of $200. Naturally, | 
don't need much inspiration 
to write a BASIC program. So 
| wrote one to solve the prob- 
lem, and it just happened to 
use nested FOR-NEXT loops. 
Here it is. 


10 PRINTCHRS(147) 

20 INPUT“HOW MUCH IS IN THE 
POT”;P 

30 TW=P/20 

40 FORI=0 TO TW 

50 R=P-1*20 

60 TE=R/10 


70 FORJ=0 TO TE 

80 C=C+1 

90 NEXTJ 

100 NEXTI 

110 PRINT:PRINT' THERE 
ARE”C'‘COMBINATIONS.” 


Line 20 asks the user for a 
pot value. Enter the number 
only, not a dollar sign. Line 30 
finds the maximum number of 
twenties (TW) which can be in 
the pot. Then we start a loop 
in line 40 which counts up 
from no twenties to TW. 

Lines 50 and 60 calculate 
the maximum number of tens 
there can be in the pot for 
any given number of twenties. 
Our inner loop (J) begins at 
line 70 and counts up from no 
tens to the maximum number 
of tens for each value of |, the 
twenties counter. 

Inside the inner FOR-NEXT 
loop is another counter (C in 
line 80) which simply incre- 
ments every time the inner 
loop is used. For each num- 
ber of tens for a given num- 
ber of twenties, there will be a 
certain number of fives neces- 
sary to arrive at the total pot. 
Therefore, we've counted all 
the possible combinations! 

If there were ones in the 
pot, you would need another 
FOR-NEXT loop which would 
increment (or decrement) the 
fives while holding the twen- 
ties and tens constant. The 
number of combinations 
would become staggering. 

This seemed like a tough 
problem for a third-grader to 
solve. We discovered later 
that the actual assignment was 
to find just some of the possi- 
ble combinations—not all of 
them! Anyway, it was an inter- 
esting problem and a good ex- 
cuse to write a BASIC pro- 
gram. By the way, there are 
121 possible combinations of 
twenties, tens, and fives in a 
pot of $200. With larger pots, 
watch the time it takes to cal- 
culate the combinations grow 
exponentially. 0 


GEOS 


Steve Vander Ark 


IMPORTING GEOS 
GRAPHICS 


Two of my favorite subjects 
are graphics and geoPublish, 
and last month | talked about 
both. | described differences 
between geoPaint's bitmap- 
ped graphics and geoPub- 
lish's object-based ones. 

This fundamental differ- 
ence between the two formats 
is important for you to under- 
stand, lest you find yourself 
confused and _ frustrated. 
Once you get the hang of ob- 
ject-based graphics, though, 
you'll love the freedom that 
they give you to experiment 
and to create. 

Working with geoPublish, 
you'll most likely want to use 
clip art with your documents. 
Most of this art will be in 
bitmap format, which means 
that it's stored as a fixed set of 
dots laid out to form an image. 
This graphics don't use the 
same format as those created 
by geoPublish itself, but that 
doesn't mean that you can't 
use them. You can import 
these bitmaps very easily. 

Each mode of geoPublish 
has an import tool. In both 
Page Graphics and Master 
Page modes, the bitmap ap- 
pears where you click the 
cross hairs on the page. 
Once imported, the bitmap is 
an object on its own layer, just 
like any other object on the 
page. Remember, if you en- 
large this image, you won't be 
adding more dots to the im- 
age; you'll only be making the 
existing dots bigger. As a re- 
sult, an enlarged bitmap 
looks blocky and jaggy. Geo- 
Publish offers a smoothing op- 
tion which helps by rounding 
off some of the sharp edges, 
but this doesn’t always make 
it look better. 

In Page Layout mode 
things work a little differently. 
You can still resize an image 
and change its attributes, but 


the way you move a bitmap on- 
to your page is unique to this 
mode. In Page Layout mode 
you create rectangular areas 
(regions) on the page in 
which to place text or, in this 
case, bitmaps. Before you can 
import an image, you must de- 
fine an area in which the im- 
age will be located. This re- 
gion can contain only the 
graphic or text file you specify 
for it. If you place a region on 
top of another region, you 
won't be able to see through 
the one on top. And if you 
place the region on top of a 
text region, the text will adjust 
around it. 

This is very useful for mixing 
text and graphics on a page. 
You can create a large text re- 
gion, then create graphics re- 
gions on top where you want 
the bitmaps to appear. The 
text will flow around those re- 
gions as pretty as you please. 

In Page Graphics mode, 
however, if you place a graph- 
ic in the middle of a text area, 
the two will just overlap. This 
also can be a useful tech- 
nique if you change the pat- 
tern of the bitmap to gray in- 
stead of black, allowing the 
text to stand out. But if you 
want text to flow around graph- 
ics, you'll want to import those 
graphics in Page Layout 
mode. 

Remember that | said that 
the regions you create in 
Page Layout mode are rectan- 
gular. The text will flow around 
that rectangular area, not 
around the edges of the im- 
age itself. There’s no built-in 
way to make text flow around 
an irregular edge. You can sim- 
ulate this effect by creating a 
number of text regions, each 
sized to hold a few lines of 
text and each fitted to the edg- 
es of the graphic image. The 
problem occurs if your graph- 
ic was imported in Page Lay- 
out mode. This mode won't let 
you cross its straight region 
edges with your text regions. 


lf you import the image in 
Page Graphics mode it won't 
be visible in Page Layout 
mode at all, which means it'll 
be next to impossible to fit a 
text region next to it with any 
precision. Probably the easi- 
est way to simulate text flow- 
ing around an irregular graph- 
ic is to create text which has 
a built-in flow created by press- 
ing the Return key at the end 
of the lines in strategic places, 
then fitting the graphic to it in 
Page Graphics mode. 

There is one other way to 
get graphics onto your geoPub- 
lish page. You can first import 
them into a geoWrite docu- 
ment which you then import in- 
to your geoPublish document. 
The graphic gets imported as 
well as the words. It even 
keeps its formatting within 
that text area (centered, for ex- 
ample). This method works par- 
ticularly well if you want the 
graphics to be tied to the text, 
such as in a fancy headline or 
a letterhead. Of course, you're 
stuck with geoWrite’s rather lim- 
ited photo scrap size. 

Let's think bigger for a min- 
ute. It can be a bit of a hassle 
to import photo scraps when 
they're limited to the size of the 
geoPaint window. There are 
utility programs which will let 
you clip photo scraps as large 
as an entire page. One of the 
best, called Scrap Can, 
comes as a bonus on the geo- 
Canvas disk from Creative Mi- 
cro Designs. A shareware ex- 
ample is Scrap It (Q-Link file- 
name: SCRAP IT, uploaded 
by TerryV7). These utilities will 
in effect let you convert an en- 
tire geoPaint page into a geo- 
Publish page, although the 
whole thing is then a single 
large object. You can also con- 
vert a geoPublish page froma 
series of layered objects into a 
large bitmap (in other words, 
convert it into a geoPaint docu- 
ment) with the program Paint 
Pages, which comes in the 
GEOS 2.0 package. 0 


AUGUST 1993 COMPUTE 


Get the most 


from geoPublish by 


importing 


bitmapped graphics 


and clip art. 


G-23 


Who is that little guy 


rushing through 


airports with duffel 


G-24 


hags stuffed 

with more parts 
than a small 
electronics store? 


D'IVERSIONS 


Fred D'Ignazio 


MULTIMEDIA 
ROAD WARRIOR 


My name is Fred D'Ignazio, 
but most people know me as 
the Road Warrior. For the past 
ten years, I've journeyed to 
more than 100 school districts 
in North America, Europe, and 
Australia as a multimedia evan- 
gelist—a Johnny Appleseed 
of new technology. 

My mission began in the 
mid-1980s in a kindergarten 
classroom in Cahaba 
Heights, Alabama. | had con- 
ceived a concept of class- 
room learning known as the 
multimedia sandbox. Children 
and teachers in the sandbox- 
es scavenged common items 
from around their schools 
such as a computer, a tape re- 
corder, a record player, a tiny 
musical keyboard, a VCR, a 
TV, a camera, and so on. | 
then taught them how to use 
$5 Radio Shack cables to con- 
nect these items into a chil- 
dren's multimedia publishing 
center. 

The idea caught on like wild- 
fire in the Jefferson County, Al- 
abama, schools. Pretty soon 
we had 13 multimedia sand- 
box schools and almost 100 
children, parents, and teach- 
ers who were learning to as- 
semble, troubleshoot, and op- 
erate these scavenged multi- 
media workstations. 

In early 1986 | was invited 
as a featured speaker to one 
of the foremost national confer- 
ences for computer-using ed- 
ucators. To prepare for the na- 
tional debut of the multimedia 
sandbox, | asked the confer- 
ence organizers for the basic 
elements of a scavenged work- 
station (a computer, VCR, 
camcorder, and so on) along 
with presentation devices 
such as a video projector and 
a speaker system for a room 
full of hundreds of adults. | ar- 
rived at the conference fully ex- 
Pecting all the equipment to 


COMPUTE AUGUST 1993 


be assembled for me. After all, 
the Jefferson County kids and 
teachers had mucked around 
with this stuff for months. 

Boy, was | surprised! None 
of my stuff was ready. Techni- 
cians were scratching their 
heads and telling me that it 
was impossible to plug acom- 
puter's video-out jack into a 
VCR and that it was not appro- 
priate to use a common tape 
recorder as an audio input de- 
vice for a VCR. There were 
none of the Radio Shack ca- 
bles and adapters that | re- 
quired to integrate the little de- 
vices into a multimedia work- 
station. 

But | toughed it out. | reas- 
sured everyone that such 
things were being done every 
day by five-, six-, and seven- 
year-olds in Alabama. Then, | 
rushed out of the hotel and ran 
across town to a Radio Shack 
and quickly purchased $25 
worth of cables and adapters. 

Back at the conference ho- 
tel, | hurriedly plugged cables 
to the equipment and comput- 
er. A short time later, hun- 
dreds of people arrived for the 
demonstration of my multime- 
dia sandbox. | turned on the 
video projector. Uh-oh! The 
bulb burnt out. | turned on the 
large speaker that the hotel 
had provided for my sound sys- 
tem. No sound. No one could 
hear or see my stuff. 

I'd brought an hour's worth 
of videotapes and computer 
slides created by the Alabama 
children on their scavenged 
multimedia —_ workstations. 
They included multimedia sto- 
ry problems for math class; mul- 
timedia book reports and biog- 
raphies; and multimedia sci- 
ence projects featuring animat- 
ed black holes, beating 
hearts, and dancing skele- 
tons. | also had a wonderful 
presentation by a team of kin- 
dergartners and sixth-graders 
titled “What Is a Principal?” 

| couldn't show any of it. | 
was stunned. What had be- 


come simple for us in my kin- 
dergarten classroom in rural Al- 
abama was impossible to dem- 
onstrate in a world-class tech- 
nology conference in one of 
America’s largest cities. 

| survived that experience 
by calling my audience to the 
front of the room to see my 
stuff on a little TV and comput- 
er screen and to listen careful- 
ly to the puny sounds coming 
out of my portable speaker. 

That's the day | first be- 
came a multimedia Road War- 
rior. | vowed that | would nev- 
er be caught off guard again. 

Since then, l've traveled 
with all of my multimedia sup- 
plies squashed into four dura- 
ble Road Warrior bags. | carry 
the two smaller ones on board 
each plane and check the two 
larger bags. If the two larger 
bags don't show up at my des- 
tination, | can do a “Multime- 
dia Lite” presentation with the 
cables and stuff from the two 
carry-on bags. If I'm fortunate 
and the airlines doesn't lose 
the two bags that I've check- 
ed, | can put on a whiz-bang 
“Multimedia Classic” presenta- 
tion full of rocket ships blast- 
ing off, kindergartners’ digital 
videos, and New Age music 
composed by deaf children. 

So if you're in an airport in 
the coming months, watch for 
me. |'m the small bearded 
man, rushing from one airport 
gate to the next, carrying two 
small duffel bags, trailing 
green and red Radio Shack ca- 
bles, and spilling stacks of CD- 
ROMs and disks on the floor 
behind me. 

It's a dirty, sweaty job, but 
some day, people will look at 
their gleaming multimedia TVs 
and remember the early days 
of multimedia, back to the 
days of spaghetti-like cables, 
the multimedia boxes that nev- 
er seemed to work together. If 
you jog their memories, they 
may even recall a little man 
with a vision—the guy they 
called the Road Warrior. O 


PROGRAMS 


32 SPRITES 


By Bill Soudan 

As far as games go, most 64 users are 
aware that they normally are limited to hav- 
ing eight sprites (or MOBs, Movable Ob- 
ject Blocks) to manipulate. There are pro- 
grams, however, that can double or even 
triple the eight-sprite limit, but these pro- 
grams often impose restrictions or 
cause annoying flicker—making the ex- 
tra sprites almost worthless. 

Thirty-two Sprites lets you quadruple 
the 64's sprite limit without losing any flex- 
ibility, while keeping flicker to the barest 
minimum. Thirty-two Sprites can handle 
up to 32 sprites at a time, and each 
sprite can be placed anywhere on the 
screen! 

Thirty-two Sprites isa BASIC program 
that lets you create a customized ma- 
chine language routine for up to 32 
sprites. To help avoid typing errors, en- 
ter 32 Sprites with The Automatic Proof- 
reader; see “Typing Aids" elsewhere in 
this section. Be sure to save a copy of the 
program before you run it. 


Getting Started 

Load and run 32 Sprites. After a short 
pause, a main menu will come up. 
This is where you can customize al- 
most every aspect of 32 Sprites. To 
change an item on the menu, type in 
the number in front of the parameter 
you want to change and press Return. 
If the parameter can be turned on and 
off, the program will first prompt you for 
the desired setting. Next, the program 
will ask you the new memory location. 
You can enter the new location in ei- 
ther hex (by preceding it with a dollar 
sign) or in decimal. You may simply 
press Return if you wish to leave the pro- 
gram at its default location. 


Menu Selections : 
The first item in the menu is Starting Ad- 
dress. This simply specifies the mem- 
ory location where the machine lan- 
guage code for 32 Sprites will begin in 
memory. The next eight menu items cor- 
respond to the computer's sprite regis- 
ters. Each of these can be turned on or 
off, and each can also place the shad- 
ow registers anywhere in memory. 
Because there are only enough reg- 
isters in the VIC chip for eight sprites, 
32 Sprites must set aside a section of 


memory to handle 32 sprites. The hex 
and decimal addresses listed next to 
each of the sprite parameters indicate 
where in memory the shadow registers 
of that particular parameter will start. 

You can place these shadow regis- 
ters anywhere in memory. For exam- 
ple, the default Y position shadow reg- 
isters start at 52992 ($CFOO). To 
change sprite 1's Y position, simply 
poke 52992 ($CFOO0) with the desired Y 
position. Each consecutive memory lo- 
cation controls the next consecutive 
sprite number, To change sprite 2's Y 
position, poke 52993 ($CFO1) with the 
desired number. This continues to loca- 
tion 53023 ($CF1F), which controls 
sprite 32's Y position. 


Temp Page 

The next menu item is Temp Page. 
This is a workspace in memory, 256 
bytes long, required to sort the sprites 
from the least Y position to the greatest 
Y position. All 256 bytes are used, and 
this area of memory should not be 
used by any other program. 


Order Table 

Order Table is the next menu item. 
This is a 32-byte area needed by 32 
Sprites to hold the order of the sprites 
after they are sorted. 


Extra Y Table 

Because 32 Sprites uses interrupts to 
function, changing a sprite’s Y position 
while the VIC chip is drawing will 
cause that particular sprite to flicker 
and possibly will cause other sprites to 
flicker as well. The Extra Y Table is a 
copy of the Y position shadow regis- 
ters, and it is used by the interrupt rou- 
tine to prevent flicker. Again, this 32- 
byte area should not be used. 


How Many Sprites? 

The last menu item lets you determine 
the maximum number of movable ob- 
ject blocks or sprites that you want to 
use at one time. This number can be 
changed to 16, 24, or 32. Note that 
changing this register changes the 
length of the shadow registers. If 32 
Sprites is set to 16 sprites, only 16 shad- 
ow registers are needed. This should al- 
ways be set to the maximum number 
of sprites which you plan to use in 
your program. 


Generating 32 Sprites 

After you've set the parameters for 
your sprites, it's time to generate 32 
Sprites, which is a machine language 
routine. This is item 14 on the menu. 

A minute or two after selecting this 
option, the program will generate the 
code and supply you with its starting 
and ending addresses in both decimal 
and hex and with information on how to 
enable and disable 32 Sprites. The pro- 
gram will ask you if you'd like to save 
the ML routine to disk. Respond with Y 
or N. 

If you wish to save 32 Sprites to 
disk, press Y and the program will 
prompt you for a filename. Type in 
your choice of a filename and hit Re- 
turn. Make sure a disk is in the drive. 
Be careful because the program 
doesn't check for disk errors. 

After the program is saved or after 
pressing N at the save prompt, the pro- 
gram will ask if you want to print an in- 
formation sheet. The info sheet is sim- 
ply a listing of the starting and ending 
addresses of the ML routine; the SYS 
addresses that enable and disable 32 
Sprites; and a copy of the main menu 
parameters, with the on/off status and 
address. If you'd like a copy, turn on 
your printer and press Y. Once the print- 
out is completed or after hitting N, the 
program will clear the screen and end. 
The 32 Sprites machine language is 
now in memory and ready to be used. 


Your Own Programs 

With 32 Sprites, you can now write 
your own BASIC programs that contain 
up to 32 sprites. Before calling the SYS 
address to start 32 Sprites, your pro- 
gram must clear out the shadow regis- 
ters; otherwise, a screen full of gar- 
bage sprites will appear on the screen 
when 32 Sprites starts. You can do 
this by poking Os into the shadow regis- 
ters with something like the following. 


100 FOR J=0 TO 31: POKE 52992+J,0: NEXT 


This line will set each sprite's Y position 
to 0. Don't forget to do this to any oth- 
er shadow registers which are being 
used, too. 

Once all registers have been 
cleared and/or set up as desired, use 
SYS and the starting address of the ma- 
chine language program. Thirty-two 

AUGUST 1993 COMPUTE  G-25 


PROGRAMS 


Sprites will enable raster interrupts, 
Clear out the temp page, and begin to 
operate. 

The best way to handle the shadow 
registers is to define a variable at the 
beginning of the program with the reg- 
isters' location. Here's an example. 


110 YPOS=52992: REM Y POSITION 
SHADOWS 


Then to change any given sprite's Y po- 
sition, use the POKE command. 


120 POKE YPOS+5,100: REM SPRITE 6'S 
YPOS 


Note that you subtract 1 from the 
sprite’s actual number. To change 
sprite 32's Y position, you'd add 31 to 
the YPOS. To change sprite 1's Y po- 
sition, you could use YPOS plus 0, or 
simply YPOS. 

The shadow registers of High X bit, 
X expand, Multicolor, and Priority oper- 
ate a bit differently. Each of these reg- 
isters can be either off (by poking 
them with a 0) or on (by poking them 
with any number other than 0). 

Each of the sprite parameters you 
turned on before generating 32 
Sprites with its BASIC generator can 
be changed for each sprite by using 
the corresponding shadow register. 
Note that 32 Sprites doesn’t change 
any registers in the VIC chip which you 
turned off before generating 32 
Sprites. 

For example, multicolor can still be 
used even if you didn't turn it on from 
32 Sprite’s main menu. However, be- 
cause you told 32 Sprites to leave the 
register off, its shadow registers won't 
work, and you won't be able to tell 32 
Sprites which sprites are multicolor and 
which are not. But you can change the 
actual register in the VIC chip. 

For example, if you decide before- 
hand that you are going to design all of 
your sprites in multicolor mode, you 
could turn off the multicolor shadow reg- 
isters before generating and then tell 
the VIC chip to display all sprites that 
it draws in multicolor by using POKE 
53276,255. 

32 Sprites won't interfere with the mul- 
ticolor register, and the VIC will display 
all eight sprites as multicolor. In order 
to display more sprites, 32 Sprites 


G-26 COMPUTE AUGUST 1993 


tricks the VIC into displaying either two, 
three, or four sets of eight sprites on 
the same screen. The VIC believes it's 
displaying eight sprites in all, and it dis- 
plays them in multicolor. 

Thirty-two Sprites can handle up to 
the maximum number of sprites you 
set for it on the main menu. Every sin- 
gle sprite can be displayed anywhere 
on the screen. Displaying more than 
eight sprites on a horizontal row could 
cause flickering and some distortion. 
Thirty-two Sprites operates at its best 
when the sprites are spaced out along 
the y-axis. Careful designing of game 
screens will prevent too many sprites 
on one row. 

You may have noticed there wasn't 
a shadow register which turns a sprite 
on or off. To do this with 32 Sprites, sim- 
ply set the corresponding sprite’s Y po- 
sition to 0. This tells 32 Sprites you 
don't wish to have that sprite drawn. 


Hints and Tips 

While greatly enhancing the 64’s graph- 
ics capabilities, 32 Sprites is a ma- 
chine language routine which does 
take up processor time. The more 
sprites displayed on the screen and 
the more parameters set to on, the slow- 
er the computer runs. The best way to 
conserve speed is to cut down on the 
number of sprites. Of course, whenev- 
er you need all 32 sprites, this will not 
be possible. 

The other way to increase the 
speed of the computer is to turn off 
any unneeded sprite parameters. In 32 
Sprites’ machine language routine, on- 
ly the parameters turned on are updat- 
ed by the program. The rest are left to 
the VIC chip to handle. Although it 
takes a minimal amount of time to copy 
a value from a shadow register to the 
corresponding VIC register, it becomes 
noticeable when you multiply this time 
by 32. 

The parameters which bog down 
the computer the most are the High X 
bit, X expand, Multicolor, and Priority. 
Do without them whenever you can. Al- 
though the High X bit cannot usually 
be done without, Priority is rarely used 
and can usually be set to off. 

The next way to conserve processor 
time is to place the sprites nearer the 
top of the screen. Thirty-two Sprites be- 
gins at the top of the screen and search- 


es down until it finds the number of 
sprites for which it was set. By placing 
the sprites closer to the top, 32 
Sprites will have to do less searching 
and use less processor time. 

You may notice some distortion of 
the tops and bottoms of the sprites 
when you're using 32 of them. This is 
because the computer may be too 
slow to update the VIC registers as 
fast as needed when the sprites are in 
certain positions. The best way to 
avoid this is to leave the top and bot- 
tom row or two of the sprite definitions 
blank. 

Because 82 Sprites is a raster inter- 
rupt, it does change the interrupt vec- 
tor at $0314-$0315. Machine language 
programmers can still use another inter- 
rupt, as long as it doesn't use another 
raster interrupt. Every '/eo second, like 
the normal timer interrupt, and after all 
the sprites on the screen have been 
drawn, 32 Sprites jumps to the normal 
interrupt routine, usually located at 
$EA31. This JMP is located at the start- 
ing address plus $61. It can easily be 
changed to jump to your own interrupt 
routine instead. Just remember to end 
your interrupt with IMP $EA31., 

Although 32 Sprites provides im- 
proved sprite capability and flexibility, 
it's not infallible. Placing the sprites in 
certain positions can often cause flick- 
er or cause some sprites to disappear. 
The best way to prevent flicker is to de- 
sign playing screens which space the 
sprites out along the y-axis. 

Since the VIC chip is actually limited 
to eight sprites, 32 Sprites divides all of 
the sprites into eight-sprite chunks and 
displays each chunk as one group. 
You still cannot display more than 
eight sprites on a horizontal line be- 
cause of the VIC chip's limitations. If 
you decide to put more than eight on 
one row, 32 Sprites will do its best to 
display more than eight sprites per hor- 
izontal line. 


How It Works 

Thirty-two Sprites works by use of the 
VIC chip feature called raster inter- 
rupts. The computer screen is redrawn 
every '/eo second. After one screen is 
drawn but before the next one begins, 
32 Sprites quickly sorts the sprites in or- 
der from lowest Y position to highest Y 
position. On the screen, that is from 


the sprite closest to the top to the one 
closest to the bottom. 

The program then displays the top- 
most eight sprites and tells the VIC 
chip to let 32 Sprites know when these 
sprites have been drawn. Once the 
VIC chip alerts 32 Sprites, the screen 
is only partially redrawn. The topmost 
eight sprites have been drawn, but the 
rest of the screen hasn't been drawn 
yet. So 32 Sprites puts the next eight 
sprites into the VIC's registers, and 
they are drawn. This process repeats 
for each series of eight sprites. 


A Demonstration 

To give you some idea of 32 Sprites's 
power, try this demonstration program. 
The demo consists of a BASIC pro- 
gram and machine language sprite da- 
ta. Before you can run the demo, how- 
ever, you must generate 32 Spritess. 
Load and run the main BASIC pro- 
gram. Once the menu comes up, type 
14 and hit Return. When the program 
asks you if you want to save to disk, an- 
swer Y and type in 32 for the filename. 
This is the name the demo searches 
for when it runs. Don't print out the in- 
formation sheet at this time. 

To help avoid typing errors, enter 
the demo with The Automatic Proofread- 
er. Save the program before you try to 
run it. 

Sprite data is written in machine lan- 
guage. Enter it with MLX, our machine 
language entry program. Again, see 
“Typing Aids." When MLX prompts, re- 
spond with the following addresses. 


Starting address: C3A0 
Ending address: CAFF 


Since the demo automatically loads 
this data, save it with the filename 32 
DEMO.ML. Make sure that this file and 
32 are all on the same disk as the de- 
mo. Control the demonstration with a 
joystick plugged into port 2. 


32 Sprites 

KX 106 REM COPYRIGHT 1993 - CO 
MPUTE PUBLICATIONS - AL 
L RIGHTS RESERVED 

REM WRITTEN BY BILL SOU 
DAN 

REM 
POKE53281,0:POKE53280,8 
: PRINT" {CLR}":ZP=191 
PRINT" {CYN} {CLR} {H} {N} 


HB 116 


MA 
KC 


120 
139 


XxX 146 


MP 


DK 


156 
166 
179 
186 


196 
269 


216 


226 


238 


246 


258 
266 
276 
286 
296 


366 
316 


326 


338 
346 


356 
366 


376 
386 


396 
49g 


416 
426 


430 


446 


456 
468 


476 


{BLU} {G}{CYN} 
{14 SPACES}32 SPRITES" 
POKE1663,103:POKE55335, 


6 

PRINT" {BLU}{39 T}{LEFT} 

{INST} {T}" 

PRINT: PRINTTAB (15) "{33M 

AIN MENU" 

PRINT:DIM P$(12),P(12,1 

) ,HS$ (16) 

X$="G123456789ABCDEF" 

FORJ=1T016:HS(J-1) =MID$ 
(X$,J,1) :NEXT 

FORJ=@T012:READPS (J) :NE 

XT 

DATA "STARTING ADDRESS" 
,"Y POSITION", "x POSITI 

ON™, "HIGH X BIT™ 

DATA "X EXPAND", "COLOR" 
,"MULTICOLOR", "PRIORITY 
hn 7 "POINTER" 

DATA “TEMP PAGE", "ORDER 
TABLE","EXTRA Y TABLE" 
,"MAX # OF MOBS" 

FORJ=GTO12:READ P(J,8), 

P(J,1):NEXT 

DATA 3,49152,3,52992,1, 
53024 

DATA 1,53056,2,53088,1, 
53126 

DATA 2,53152,2,53184,1, 
53216 

DATA 3,52736,3,52672,3, 
52704 

DATA 3,32 

FORP=6T012:GOSUB1200 

EXT 
PRINT" {YEL}14) {CYN}GE 

NERATE {WHT}32 SPRITES" 

WS="{HOME}{21 DOWN}" 

GOSUB136G: PRINTWS; : INPU 

T"{3}YOUR CHOICE";CS$ 

C=VAL (C$) : IFC<1ORC>14TH 

EN340 
IFC>12THEN47@ 
IFP(C-1,@) =3THEN420 

GOSUB1360: PRINTWS; :PRIN 

T"{3}SELECT: ";PS$(C-1); 
" {WHT}1.¢3} ON 
{2 SPACES}{3}2. {WHT} 

{2 SPACES}OFF" 

GETAS: IFAS<>"1"ANDAS<>" 

2"THEN39G 

IFAS="L"THENP (C-1,0) =1 
IFAS="2"THENP (C-1,@) =2 

GOSUB1360: PRINTWS; :MLS= 
"_1":INPUT"{3}NEW MEMOR 

¥ LOCATION"; MLS 

IFLEFTS (ML$,1) ="$"ANDLE 

N (ML$) =5THENDS=ML$:GOSU 

B134G :ML=D:GOTO459 

ML=VAL (MLS) : IFML<GORML> 

65535THEN46G 

P(C-1,1)=ML 

P=C-1:G0SUB128G:GOTO34B 


iN 


IFC=14THENS19 


CJ 


BB 


XK 


HJ 


HP 


AS 


PE 


JA 
Qu 


JP 


486 


496 
500 
516 
520 


530 
540 


559 


566 


576 


586 


596 


600 


645 


607 
608 


609 
619 


620 


636 


632 
635 


636 
637 


638 
646 
659 


660 
676 


GOSUB136@: PRINTWS;:PRIN 
T"{3}SELECT: {WHT}1.{¢3} 
16 {WHT}2.¢3} 24 {WHT} 
3.43} 32" 
GETAS: IFAS<>"1"ANDAS<>" 
2"ANDAS$<>"3"THEN496 
P(12,1)=(VAL (A$) *8)+8:G 
0T0460 
REM GENERATE ML CODE 
AD=P(G,1) 
GOSUB1370 
PRINT" {HOME} {11 DOWN} 
{CYN} "TAB (12) "GENERATIN 
Gioia.” 
DEF FNH (X)=INT (X/256) 
DEF FNL (X)=X-(FNH (X) *25 
6) 
PRINT" {DOWN} "TAB (9) "INT 
TIALIZATION CODE..." 
MP=0:GOSUB144G 
FORJ=1T0P (12,1) /8:PRINT 
TAB(12)"RASTER HANDLER" 
7J:GOSUB1560:NEXT 
AD=AD-34:DA$="A9FA8D12D 
GA9008D00004C31BA":GOSU 
B143G 
POKEAD-5,FNL(P(0,1) +100 
) : POKEAD-4, FNH (P(@,1)+1 
GB) 
GOSUB 1907 
DI=AD:DA$="78A9318D1403 
A9EA8D1503A9908D15DG8D1 
ADGA9818DGDDCA9GG8DGDDC 
A993" 
DAS$=DA$+"2@D2FF5860":GO 
SUB1430 
GOSUB1370: PRINT" {HOME } 
{7 DOWN}"'TAB (16) "COMPLE 
Isa iT 
PRINTTAB(5)"{2 DOWN}BEG 
INNING ADDRESS:";:D=P(6 
71) :GOSUB1390 
PRINTP(G,1);" S"+AS$:PRI 
NTTAB (5) "ENDING ADDRESS 
:{3 SPACES}"; :D=AD:GOSU) 
B1300 
PRINTAD;" $"+AS 
PRINT"{DOWN} ENABLE 32 


{SPACE}SPRITES: 
{3 SPACES}";:D=P(0,1): 
OSUB1368 


PRINT"SYS";P(G,1);" (JM 
P{SHIET-S! SPACE} S"+AS+")™ 


PRINT" DISABLE 32 SPRIT 
ES:{2 SPACES}";:D=DI:GO 
SUB1366 

PRINT"SYS";DI;" (JMP 


{ SHIFT=SPACE}$"+AS+#") " 
PRINTTAB (13) "{2 DOWN}SA 
VE 32 SPRITES ML?" 
GETAS: IFAS<>"Y"ANDAS<>" 
N"THEN65@ 
IPAS="N"THEN719 
GOSUB137G: PRINT" {HOME} 
{7 DOWN}"TAB(5) "ENTER F 
ILENAME:"; :OPEN1,@: INPU 
T#1,F$:CLOSEL 


AUGUST 1993 COMPUTE 


G-27 


PROGRAMS 


JD 


DQ 


XM 


KG 


RP 
sc 


KM 


MR 
KE 
QH 
DG 


GE 


CK 


QX 


SA 


HC 


ES 


BR 


AF 
MX 
GJ 
RR 
RX 


BQ 
PJ 


FS 


EJ 


680 


696 


788 
716 


720 
736 
746 


750 
760 
776 
780 


790 


800 


862 


804 


806 


808 


816 


826 
836 
846 
856 
860 


876 
880 


898 
998 


PRINT: PRINTTAB(15)" 
{2 DOWN}SAVING...." 
SYS57812 FS$,8,1:POKE193 
,ENL(P(G,1)) :POKE194,EN 
H(P(@,1)) :POKE1L74,FNL(A 
D+1) 
POKE175,FNH(AD+1):SYS 6 
2957 
GOSUB1370: PRINT" {HOME} 
{10 DOWN} "TAB (10) "PRINT 
OUT INFO SHEET?" 
GETAS: IFAS<>"Y"ANDAS<>" 
N"THEN720 
IFAS="N"THENPRINT" {CLR} 
"SEND 
GOSUB1370: PRINT" {HOME} 
{16 DOWN} "TAB (14) "PRINT 
TNGioe jeiait 
OPEN4,4,7:PRINT#4: PRINT 
#4: PRINT#4 
PRINT#4,SPC(23)"32 SPRI 
TES" 
PRINT#4:PRINT#4: PRINT#4 
PRINT#4,SPC(23) "STARTIN 
G ADDRESS:";:D=P(@,1):G 
OSUB1399 
PRINT#4,P(6,1);" S$"+A$: 
PRINT#4 , SPC (23) "ENDING 
{SPACE} ADDRESS: 
{2 SPACES}"; :D=AD:GOSUB 
1390 
PRINT#4,AD;" $"+AS:PRIN 
TH4 
PRINT#4,SPC (19) "ENABLE 
{SPACE}32 SPRITES: 
{3 SPACES}";:D=P(@,1):G 
0SuB1300 
PRINT#4,"SYS";P(G,1);" 
{SPACE} (JMP 
{SHIFT-SPACE}$"+A$+")" 
PRINT#4,SPC(19) "DISABLE 
32 SPRITES: {2 SPACES}" 
} :D=DI:GOSUB1308 
PRINT#4,"SYS";DI;" (JMP 
{SHIFT-SPACE}$"+AS+")": 
PRINT#4:PRINT#4 
FORJ=1T012: PRINT#4,SPC ( 
16) ;P$ (J) ;SPC(24-LEN (PS 
(J)))3 
IFP(J,@) =3THENPRINT#4," 


N/A"; 
TEP (J,@) =2THENPRINT#4," 
OFE"; 
TFP(J,6)=1THENPRINT#4," 
ON "; 


PRINT#4,SPC(5);P(J,1)7: 
D=P(J,1) :GOSUB1340 
PRINT #4, SPC (10-LEN (STR$ 
(P(J,1)))) ¢"S"+AS2NEXT 
PRINT#4:CLOSE4:END 

DATA 78,A9,<0+72,8D,14, 
63,A9,>0+72 

DATA 8D,15,03,A9,7F,8D, 
6D,DC,A9, G1 

DATA 8D,1A,D0,AD,11,D@, 
29,7F,8D,11 


JB 916 DATA DG,A9,FA,8D,12,D6, 


G-28 


COMPUTE AUGUST 1993 


SF 


FH 


928 
930 
949 
959 
960 
976 
986 
996 
1666 


1618 


19626 
1636 
1640 
1656 
1068 
1676 
1684 
1696 
1169 
1116 
1126 
1136 


1146 
1142 


1144 


1149 
1156 


1160 
1176 


1186 
1209 
1216 


1229 
1236 


1246 
1256 


A9,00,8D 

DATA <0+100,>0+190,A9,F 
F,A2,00,9D 

DATA <9,>9,E8,D0,FA,A9, 
FF,8D,15,D9 

DATA 58,66,01,02,04,08, 
16,20,40,80 

DATA FE,FD,FB,F7,EF,DF, 
BF,7F,A9,@1 
DATA 8D,19,D0,AD,<0+100 
1>0+100,0A 
DATA A8,B9,<G+101,>0+10 
1,8D,<8+95 
DATA >0+95,B9,<0+102,>0 
+162,8D 
DATA <0+96,>0+96,4C,FEF, 
FF,4C,31,EA 

DATA @6,<6+111,>0+111, 
00,08,00,66 

DATA 00,01,00,09,A2,00 
7BD,<1,>1,C9,1D,96,0E, 
Ag 

DATA B9,<9,>9,38,04,C8 
14C,<O+121 

DATA >6+121,8A,99,<9,> 
9,E8,E0,<C 

DATA 96,E6,A2,00,A0,1D 
1B9,<9,>9,16 

DATA 4F,C8,B9,<9,>9,10 
149,C8,B9,<9 

DATA >9,10,43,C8,B9,<9 
1>9,10,3D,C8 

DATA B9,<9,>9,10,37,C8 
1B9,<9,>9,19 

DATA 31,C8,B9,<9,>9,19 
1 2B,C8,B9,<9 

DATA >9,10,25,C8,B9,<9 
1>9,16,1F,C8 

DATA B9,<9,>9,14,19,C8 
7B9,<9,>9,18 

DATA 13,C8,B9,<9,>9,19 
,@D,C8,B9,<9 

DATA >9,16,07,C8,C@,1D 
7BGO,AE,90,GF 

DATA 9D,<A,>A,A9,FF,99 
1$9,>9,E8,E9 

DATA <C,90,A4,BG,18 
DATA EG,08,80,05,BC,<@ 
+56,>0+56 

DATA 88,2C,AG,FF,8C,15 
,DG 

DATA A9,FF,9D,<A,>A 
DATA E8,E0,<C,90,F8,EE 
1 $G+100 

DATA >@+166,A2,<C,CA 
DATA BD,<1,>1,9D,<B,>B 
7CA,10,F7,XX 

END 

POKE214,5+P:PRINT 
PRINT" {YEL}";P+1;" 
{LEFT}) {CYN}"PS(P) 
PRINT" {UP} "TAB (22) 7 
IFP(P,@) =1THENPRINT" 
{3}0N " 

IFP(P,@) =2THENPRINT" 
{4}0FF" 
IFP(P,@)=3THENPRINT" 


BJ 


SA 
AX 


BD 
KF 


JA 
KA 
JE 
QP 
DA 
JK 
KB 


FB 
QE 


EG 


FX 


cQ 
cr 


XM 
KG 
AX 
Gs 
QB 
SE 


HK 


RA 


HS 


SP 


ER 


1266 


1276 
1286 


1296 
1366 


1316 


1326 


1336 


1346 


1356 


1360 


1376 


1386 
1396 


1460 


1416 


1426 
1436 


1446 


1456 


1466 


1476 


1486 


1496 


1568 


1516 


1526 


1538 
1546 


{RED}N/A{3}" 

PRINT" {UP} "TAB (26) 7P(P 
71);"{5 SPACES}" 
D=P(P,1) :GOSUB1300 
PRINT" {UP} "TAB (34) "S"; 
A$ 

RETURN 

T=INT (D/4896) sAS=HS (T) 
:D=INT (D-T*4996) 

T=INT (D/256) :AS=AS+HS ( 
T) :D=INT (D-T*256) 
T=INT (D/16) :BS=AS:AS=A 
$+HS(T) :D=INT (D-T*16) : 
BS=HS (T) tHS (D) +BS 
AS=AS+HS(D) : RETURN 
D=6:FORJ=3TOQSTEP-1:J1 
=ASC (MID$(D$,5-J,1))-4 
8:1FJ1>16THENJ1=J1-7 
D=D+(J1*167J) :NEXT: RET 
URN 
PORX=21T024:POKE781,X: 
SYS 59903:NEXT: RETURN 
FORX=2T024: POKE781,X:S 
¥S59903:NEXT: RETURN 
DAS="68FG0D";GOSUB143¢ 
POKEAD, 185; POKEAD+1,FN 
L(P(6,1)+56-SB) : POKEAD 
+2,FNH (P(G,1)+56-SB) :A 
D=AD+3 
DAS="@D"+AAS+"BD"+AAS+ 
"FOOBD0G9":GOSUB1430 
POKEAD, 185: POKEAD+1,FN 
L(P(@,1)+64-SB) : POKEAD 
+2,FNH (P(@,1)+64-SB) :A 
D=AD+3 
DAS="2D"+AAS+"8D"+AAS: 
GOSUB1430:RETURN 
MP=1:FORJJ=1TOLEN (DAS 
STEP2:A$=MID$(DAS,JJ,2 
) :GOSUB1456:NEXT:MP=G: 
RETURN 

READAS: LFAS="XX"THENRE 
TURN 

IFLEFTS$ (A$,1)="<"THENL 
508 

IFLEFTS (AS$,1)=">"THENL 
536 

A1=ASC (LEFTS$(A$,1))-48 
:A2=ASC (RIGHTS (AS$,1)) - 
48: IFA1>16THENA1=Al-7 
IFA2>1L6THENA2=A2-7 
POKEAD,A1*16+A2:AD=AD+ 
1:0N -(MP=8) GOTO1449 
{SPACE}: RETURN 

PL=@: IFLEN (A$) >2THENPL 
=VAL (MID$(AS$,4) ) 
WGS$=MIDS(A$,2,1) :WG=VA 
L(WG$) : IFWG$>"@"ANDWGS 
<"D"THENWG=ASC (WGS$) -55 
POKEAD,FN L(P(WG,1)+PL 
) AD=AD+1:0N -(MP=8) G 
0T0144G :RETURN 

PL=@: IFLEN (AS) >2THENPL 
=VAL (MIDS (AS,4)) 
WGS$=MIDS$ (A$,2,1) :WG=VA 
L(WGS$) : IFWGS>"@"ANDWGS$ 
<"D"THENWG=ASC (WG$) -55 


ER 


BH 


GF 


HF 
DA 
QR 
BB 
AG 
Qs 
AF 
AH 
CJ 
GP 
SP 
HK 
ES 
BE 
RQ 
GD 
PP 
XX 


BB 


HE 
QH 
PE 


EE 
XP 
FP 


QD 
AF 


1556 


1566 


1576 


1580 
1596 
1606 
1619 
1626 
1636 
1646 
1656 
1660 
1676 
1686 
1696 
1766 
17198 
1728 
1738 
1746 
1756 


1766 


1776 
1788 
1796 


1806 
1816 
1826 


1839 
1849 


POKEAD,FN H(P(WG,1)+PL 
) :AD=AD+1:0N -(MP=8) G 
0T01440 :RETURN 

POKEP (@,1)+101+3*2,FNL 
(AD) : POKEP (@,1)+162+3* 
2,FNH (AD) 
DAS="A2GGAG": IFJ=1THEN 
DAS=DAS+"@G":EPS="G8": 
SB=0 

IF J=2THENDAS=DAS+"68" 
tEPS="16":SB=8 
IFJ=3THENDAS=DAS+"10": 
EPS="18":SB=16 

IF J=4THENDAS=DAS$+"18": 
EPS="26":SB=24 
DAS=DAS+"84BF":GOSUB14 
30 
IFJ=1THENB1=AD:GOTO166 
) 
B1=AD:DAS="B9":GOSUB14 
36 
POKEAD, FNL (P(16,1)-8): 
POKEAD+1,FNH (P(18,1)-8 
) SAD=AD+2 
DAS=""3GGEA8B9<B>BA4BF1 
86914CD12DGBGFB":GOSUB 
1436 
DAS="B9<A>A":GOSUB1436 
DAS="10034C0GGGA8":GOS 
UB1430 
DAS="B9<B>B9DG1D6":GOS 
UB143@6 

IFP (2,0) =1THENDAS="B9< 
2>29D6GD6":GOSUB143@0 
IFP (7,8) =LTHENDAS="B9<¢ 
7>748":GOSUB143G 

IFP (4,@) =1THENDAS="B9< 
4>448":GOSUB1430 
IFP(6,@) =1THENDAS="B9< 
6>648":GOSUB1436 

IFP (5,G) =1THENDAS="B9< 
5>548":GOSUB1434 
IFP(3,0)=1THENDAS="B9<¢ 
3>348":GOSUB1436 

IFP (8,0) =1THENDAS="B9< 
8>8A4BF99":GOSUB1436 
IFP(8,G)=1THENPOKEAD,F 
NL (2640-SB) : POKEAD+1,F 
NH (264G-SB) :AD=AD+2 
IFP(3,8)=1THENAAS="16D 
6" ;GOSUB1380 
IFP(5,@)=1THENDAS="689 
9":GOSUB1436 
IFP(5,6)=1THENPOKEAD,F 
NL (53287-SB) : POKEAD+1, 
FNH (53287-SB) :AD=AD+2 
IFP (6,0) =1THENAAS="1CD 
@":GOSUB1386 

IFP (4,0) =1THENAAS="1DD 
0" :GOSUB1380 
IFP(7,@)=1THENAAS="1BD 
6":GOSUB1386 

PL=6: IFJ>1THENPL=25 
POKEB1+PL,FNL (AD) : POKE 
B1+PL+1,FNH (AD) :DAS$="E 
8E8C884BFCG"+EP$:GOSUB 
1439 


PQ 
QG 


BS 


Qs 


Qs 
MK 


XA 


XG 


BE 


1850 
1868 


1876 


18890 


1885 
1899 


1906 


1965 


1987 


1916 
19290 


1936 


D=254-(AD-B1l) 
IFD>129THENGOSUB1360:D 
AS="DO"+RIGHTS (A$,2):G 
0SUB1436:GOTO1886 
DAS="F0034C":D=B1:GOSU 
B139@:DAS=DA$+B$:GOSUB 
1436 
DAS="AD<A>A361GA8B9<B> 
B38E9078D12DGEEGG664CB 
CFEA99@8DG0GGGA9FA8D12D 
G4C31EA" 

GOSUB1436 
POKEAD-33,FNL(P(10,1)+ 
8+SB) : POKEAD-32,FNH (P( 
16,1)+8+SB) 
POKEAD-19,FNL(P(@,1) +1 
@@) : POKEAD-9,FNH (P(G,1 
) +168) 
POKEAD-18,FNL(P(G,1)+1 
66) :POKEAD-17,FNH (P (6, 
1) +169) 
POKEAD-2,FNL(P(8,1)+97 
) :POKEAD-1,FNH (P(@,1)+ 
97) 

RETURN 
B1=AD:DAS="B9GGGG30GEA 
8B9<1>1A4BF186914CD12D 
GBGFB":GOSUB1436 
POKEB1+1,FNL(P(16,1)-8 
) : POKEB1+2,FNH (P (16,1) 
-8) : RETURN 


DEMO 


166 
110 
126 
125 
127 
136 


135 
146 


156 
163 
176 


186 
196 


206 
216 


220 
236 
246 
256 


REM 32 SPRITES DEMO 

REM 

PRINT" {CLR} {N} {H}":POKE 
53281, 6: POKE53280,0 
IFA=OTHEN A=1:LOAD"32 D 
EMO.ML",8,1 

IFA=1THEN A=2:LOAD"32", 
8,1 

REM INITIALIZE 32 SPRIT 
E REGISTERS 

DIM C(1@) 
¥=52992:X=53024 :HX=5305 
6:C=53120 
P=53216:PR=53275 
FORJ=@T031: POKEY+J,@:PO 
KEX+J, 0: POKEHX+J, 0: POKE 
C+J,0:POKEP+J,14:NEXT 
FORJ=0T063: POKE704+J,0: 
POKE832+J,0: POKE896+J,0 
:NEXT 

FORJ=3T059: POKES32+J,25 
5:NEXT 

POKEPR,255:SYS 50080:SY 
S 49152:POKE53269,255 
DT$="{HOME}{24 DOWN)" 
PRINTLEFTS$(DT$,8) ;TAB(1 
5)"{CYN}32 SPRITES" 
PRINTTAB(9)"{7}CUSTOM 3 
2-SPRITE RASTER™ 
PRINTTAB (15) "CONTROLLER 


PRINT: PRINTTAB(9)"YOU C 
AN DISPLAY UP TO 32" 
PRINTTAB(6)"SPRITES ON 


JM 


EF 


FJ 


BF 


GE 


DG 


EH 


268 
279 


286 


2968 


306 
319 
326 
336 
346 


356 


368 
376 
375 
377 
378 


379 
386 


385 
398 


490 


416 
426 


449 


456 


466 


476 
486 
499 


506 


519 


{SPACE}THE SCREEN AT AN 
y" 

PRINTTAB(7) "TIME. EACH 
{SPACE}SPRITE CAN MOVE" 
PRINTTAB (9) "ANYWHERE ON 
THE SCREEN." 
FORCL=1T010:READC (CL) :N 
EXT:DATA 8,2,9,108,7,1,7 
118,9,2 
FORJ=31TOGSTEP-1: POKEP+ 
J,13:FORCL=1T016: POKEC+ 
J,C(CL) :NEXT:NEXT 

GOSUB 1619 

GOSUB 1000 

PRINTLEFTS (DT$,12) ; TAB ( 
7)"YOU HAVE FULL CONTRO 
L OVER" 

PRINTTAB(7) "EVERY SPRIT 
E OPTION EXCEPT" 
PRINTTAB (13) "Y-EXPANSIO 
nN." 
FORJ=@T031:POKEC+J, INT ( 
RND (1) *15)+1:NEXT:GOSUB 
1626 

FORJ=6T031: POKEC+J, 2:NE 
XT:GOSUB10290 
FORJ=6T063: POKE832+J,0: 
NEXT 
FORJ=6T031:A=INT (RND (1) 
*3)+1:IFA=1THENPP=13 
IFA=2THENPP=14 
IFA=3THENPP=11 
POKEP+J,PP:NEXT:CC=85 
FORJ=3T059: POKE704+J,1N 
T (RND (1) *256) : POKE896+J 
7CC3CC=255-CC: POKE832+7 
7255 

NEXT 
POKE53285, 7: POKE53286,1 
G 

GOSUB1626: POKE53276,255 
:GOSUB10620:GOSUB162G: PO 
KE53276,@:GOSUB1620 
FORJ=0T031: POKEP+J,13:N 
EXT 

GOSUB162@: POKE53277,255 
: GOSUB102@: POKE53277,0 
PRINTLEFTS$ (DT$,12) ; TAB ( 
5) "MOVE SPRITE #1 

{2 SPACES}WITH JOYSTICK 
" 


PRINTTAB(2)"IN PORT 2. 
{2 SPACES}PRESS + AND - 
TO CHANGE” 
PRINTTAB(3) "SPRITE NUMB 
ER.{2 SPACES}PRESS C TO 
CHANGE" 
PRINTTAB(8)"COLOR. PRES 
S Q TO QUIT." 
SYS 50272:POKE254,0:SP= 
1 
POKE254,SP-1:PRINTLEFTS 
(DT$,12);TAB(18) ;MID$(S 
TRS(SP),2);" " 
GETA$: IFA$="+"ANDSP<32T 
HENSP=SP+1:GOTO 490 
IFAS="—-"ANDSP>1THENSP=S 


AUGUST 19893 COMPUTE G-29 


PROGRAMS 


P-1:GOTO 490 C56¢:1B 1B 1B 1B 1B 19 19 19 DD |C796:60 GO OH BG GG GB GG GB 2G 
EJ 520 IFAS="C"THENPOKEC+SP-1,]| C568:19 19 19 19 18 18 18 18 E4 |C798:40 GG GG GO GB GO GG OG 28 
(PEEK (C+SP-1) +1) AND15 C576:18 18 18 18 18 18 18 18 FB /C7AG:06 60 GO BG BG BG GO BO 30 


EG 530 IFAS<>"Q"THEN5G@ C578:18 18 18 18 18 18 18 16 G2 |c7A8:00 G6 BG GG BG BB BB GO 38 
GS 549 POKE828,@:SYS 828 C586:18 18 18 18 18 18 18 18 GC |c7BG:60 GB G6 GG BG BG GG GG 40 
GG 999 END C588:18 18 18 18 18 18 18 18 14 |c7B8:00 GG 66 GG BG BB GB G5 48 


DH 1660 FORJ=11T024:POKE781,J:| ©599:18 18 18 19 19 19 19 19 3B |c7c¢:06 96 ao ao 

SYS 59903:NEXT:RETURN | C298:19 19 19 1B 1B 1B 18 1B 62 |c7c8:08 oo ao a6 4 He He a 38 
DJ 1010 FORJ=17T01000:NEXT:RETU| C240:1B 1c 1c lc lc 1c 1E 1E Bl |c7Dd:66 66 G0 G9 GG oo GG GO Go 

RN CSA8:1E 1E 20 20 2G 20 21 21 BS |c7D8:00 G8 86 BG GO GG GG GG 68 
PQ 1020 FORJ=1T050G:NEXT:RETUR| CobG?22 23 23 23 25 25 25 25 59 |c7EG:06 O08 06 G0 G5 OH Od OG 70 

N : a eeeeeae 3 28 ae 38 2h a a Be C7E8:00 G6 00 68 BO BG GG OG 78 
32 DEMO.ML C5C8:30 32 32 34 35 35 37 37 AS |c7Fa:00 OB OB OO 00 OO OO OO Bo 
C3AG:78 AS GB 8D 62 CO AY C4 D5 | C5DG:39 39 3A 3C 3C 3E 3E 3F E8 |C8GG:4G GG GB BB BB BG GB BG 91 
C3A8:8D 63 CG A2 OG 8A GA GA 5A | C5D8:41 41 42 44 44 46 47 49 F4 |C8G8:00 GB OG GO GG GG GG aa 99 
C3BG:0A GA 9D EG C4 8A 4A 4A BG | C5EG:4B 4B 4C 4E 56 51 53 55 17 |C810:06 GB GG GO GG GO GO Go Al 
C3B8:4A 4A 9D CO C4 E8 EG 26 63 | C5E8:56 58 SA SB SD SF 68 62 42 |C818:40 GB G1 G1 G1 G1 G1 G1 EB 
C3CG:98 EB 58 68 39 00 39 GG DB | C5FG:67 69 6A 6C GF 71 76 79 46 |C82G:G1 G1 G1 G1 G1 G1 G1 G1 Bl 
C3C8:39 60 39 BG 39 GG 39 GB 5G | C5F8:7C 8G 83 86 98 97 AD AD 9B }c828:51 G1 G1 G1 G1 G1 G1 G1 BO 
C3D6:39 66 39 GG 39 GG 39 GB 58 | C6GG:A9 BA C@ CA CD D1 D4 D7 BD |cg83G:G1 G1 G1 G1 G1 G1 G1 G1 Cl 
C3D8:39 GB 39 6G 39 GG 39 GB 6g | C608:DB EG El ES E6 EB EA EE FS |C838:G1 G1 G1 G1 G1 G1 G1 G1 CO 
C3EG:39 36 39 GB 39 GG 39 GG 68 | C61G:FG F2 F3 FS F7 FB FA FC 47 |c84G:61 61 G1 G1 G1 G1 G1 G1 D1 
C3E8:39 G6 39 GB 39 GG 39 GB 7G | C618:FD FF @1 G2 G4 G6 G6 G7 30 |c848:G1 G1 G1 G1 G1 G1 G1 B1 DO 
86 39 GG 39 G8 39 GG 78 | C620:G9 OB GC GC GE 16 1 11 19 |cg5G:G1 G1 G1 G1 G1 G1 G1 G1 El 
63 39 GO 39 BG 39 GG BG | C628:13 13 15 15 16 18 18 19 52 |cg58:g1 G1 G1 G1 G1 G1 G1 G1 ED 
@6 BD CO C4 DG 24 BC Gp | C639:19 1B 1B 1D 1E 1E 26 26 16 |cg6G:G1 G1 G1 G1 G1 G1 G1 G1 Fl 
C4 B9 G6 C5 9D 26 CF 1F | C638:2G 22 23 23 23 25 25 27 14 |cg68:G1 G1 G1 G1 G1 G1 G1 G1 FO 
66 C7 9D 46 CF BO GG FD | C640:27 27 28 28 28 2A 2A 2C 1D |c87G:G1 G1 G1 G1 G1 G1 G1 G1 G2 
9D 6G CF C8 D@ G5 AD 28 | C648:2C 2C 2C 2D 2D 2D 2F 2F FA |C878:G1 G1 Gl G1 Gl G1 G1 G1 GA 
9D CO C4 98 9D EG C4 B7 | C650:2F 31 31 31 31 32 32 32 E3 |C8BG:G1 G1 G1 G1 G1 G1 Gl G1 12 
50 C4 BC EG C4 BO GG DD | C658:32 34 34 34 34 34 36 36 EA |c888:G1 G1 G1 G1 G1 G1 G1 G1 1A 
C43G:C6 9D 20 CF B9 GG CB 9D 82 | C669:36 36 36 36 37 37 37 37 FC |cg9G:G1 G1 G1 G1 G1 G1 G1 G1 22 
C438:40 CF B9 OG CA 9D @@ CF ag | C668:37 37 37 37 39 39 39 39 14 |cg98:g1 G1 G1 G1 G1 G1 G1 G1 2A 
CGO FE 90 G7 AO GG 9D C3 | C6749:39 39 39 39 39 39 39 39 FD |cgag:G1 G1 G1 G1 G1 G1 G1 G1 32 
C4 AG GG 98 9D EG C4 39 | C678:39 39 39 39 39 39 39 3B 68 |cgaa:G1 G1 G1 G1 G1 G1 G1 G1 3A 
EG 26 90 AD 4C 31 EA 7F | C680:39 39 39 39 39 39 39 39 BE |c8pG:G1 G1 G1 G1 G1 G1 G1 G1 42 
C458:00 G8 GG GG BO GB BG BG E1| C688:39 39 39 39 39 39 39 39 16 |cgps:G1 G1 G1 G1 G1 G1 G1 G1 4a 
C460:78 AI 75 8D 62 CO AI C4 46 | C695:39 39 39 37 37 37 37 37 DF |caca:G1 G1 G1 G1 G1 G1 G1 G1 52 
C468:8D 63 CG A9 GB 85 FD 85 DB| C698:37 37 36 36 36 36 36 36 EG |cece:G1 G1 G1 G1 G1 G1 G1 G1 SA 
C47G:FC 85 FE 58 68 A6 FE AD 88 | C6AG:34 34 34 34 34 32 32 32 26 |cang:g1 G1 G1 G1 G1 G1 G1 G1 62 
C478:00 DC 4A 90 03 FE 6G CF 6F| C6A8:32 32 31 31 31 2F 2F 2F E8 |cgp8:G1 G1 G1 G1 G1 G1 G1 G1 6A 
€480:4A 90 G3 DE G6 CF 4a 90 G6 | C6BG:2F 2D 2D 2D 2C 2C 2C 2A 2E |cREg:G1 G1 G1 G1 G1 GG OG GO GB 
C488:15 48 BD 26 CF 18 69 Gl 1B| C6B8:2A 2A 28 28 28 27 27 25 BE |cges:GG GG BG GB GG BG GO BG 7A 
C490:9D 20 CF 90 G8 BD 40 CF 7B | C6C9:25 25 23 23 22 22 20 20 BA |cErg:o0 66 GG GG BG GG BG GB 82 
C498:49 G1 9D 40 CF 68 4A 9G 94 | C6C8:20 1E 1D 1D 1B 1B 19 18 F2 |cerg:gd 6G G6 GO BG GG 6G OG BA 
C4AG:15 48 BD 20 CF 38 £9 G1 B4| C6D0:18 16 16 15 15 13 11 11 2C |c9qg:32 32 33 33 34 35 36 36 EB 
C4A8:9D 20 CF B@ G8 BD 4G CF 95| C6D8:10 16 GE GC OB 89 G9 B7 8A | c9ogg:37 38 38 39 3A 3B 3B 3C 51 
C4B0:49 G1 9D 4G CF 68 4c 31 ca| C6EG:G6 G4 G2 G1 G1 FF FD FA Cl |c91g:3c 3D 3B 3F 3F 40 41 41 8B 
C4B8:EA 66 G@ GG GO GG GO Go B7| C6E8:FS F8 F7 FS F3 FO EE EB BC |c918:42 43 44 44 45 45 47 47 7F 
C4C0:G1 G1 G1 G1 G1 G1 G1 G1 4A | C6FO:EA E8 E6 El EG DC DB D7? 33 |c92G:48 48 49 4A 4B 4C 4C 4D 29 
C4C8:61 G1 G1 G1 G1 GO GG GB 4B | C6F8:D4 CD CA C5 CO BA AY 23 81 |c928:4D 4B 4F 58 5G 51 52 52 A3 
C4DG:00 GG GG GG BG BG BO GB 5A| C700:G0 BG BH BB GO BG BG BG BF | c939:53 54 55 55 56 56 58 58 97 
C4D8:00 GG GB GB GB G1 G1 G1 69| C7G8:6G BG GG GB BO BG BB BB 97 | c938:59 59 SA 5B 5C 5C 5D 5E 3D 
C4EG:3A 4A 5A 6A 7A 8A 9A AA E9| C719:00 9G GB GB GG BG BO BG IF |co4g:5E SF 6G 61 61 62 62 63 BY 
C4E8:BA CA DA EA FA GC 1C 2C F8| C718:96 GG GG GB GB BG GB GB A7 | c948:64 65 66 66 67 67 69 69 AF 
C4FG:3C 4C 5C 6C 7C BC 9C AC F9| C720:66 BG GG GB BG BG GB GB AF |c95g:6A 6A 6B 6C 6D 6D 6E 6F 55 
C4F8:BC CC DC EC FC @C 1C 2C FA| C728:06 06 84 GG GG GG GB BB B7 |co5g:6F 76 71 72 72 73 73 74 DL 
C500:A9 97 99 8B 86 83 7C 79 C5| C730:90 GO BB GB GG GB GO BB BF |c96g:75 76 76 77 78 78 79 7A AS 
C508:76 74 71 6F 6A 69 67 65 3E| C738:0G G9 GB GG BG BO BB OG C7 |c968:7B 7B 7C 7C 7E 7E 7F 8G SD 
C516:62 64 5D 5B 5A 58 58 56 81| C740:9G GH GB GO GG BG GG OH CF |c97G:8G 81 82 83 83 84 84 85 ED 
€518:53 51 5G 59 4E 4C 4B 49 34| C748:09 9G G8 BO BO BG OG OO D7 |\c9o78:86 87 87 88 89 89 8A 8B BD 
C520:47 47 46 44 42 41 41 3F @7| C750:09 GB GG BG GF BB GG OG DF |coBg:8Cc BC 8D 8D BF BF 9G 9G 74 
C528:3F 3B 3C 3C 3A 3A 39 39 94| C758:06 G6 03 GG GG GO GO BG E7 | c9gg:91 92 93 93 94 95 95 96 Fl 
C530:37 35 35 34 34 32 30 30 89| C760:00 GB G0 GG BO GG BB BG EF | c99g:97 98 98 99 9A 9A 9B 9C DS 
€538:30 2F 2F 2D 2D 2B 2B 2B F7| C768:00 08 G8 BG BB GB GB BG F7 |c998:9D 9D 9E 9E AB AG Al Al 8C 
C54G:2A 2A 28 28 28 26 26 26 3F| C770:G0 GB OG GG GG GO BO OO FF |coag:A2 A3 A4 A4 AS AG AG AT GA 
Geaai28 25 25 23 23 23 21 21 BF | C778:90 GB G6 GO GG GO GO OG G8 |coAB:AB A A AA AA AB AC AD ES 
€55G:21 21 26 20 20 1B 1B 1E gE| C780:@@ 66 Gd BO GG BO BG BO 18|coBG:AD AE AF AF BO Bl B2 B2 IC 
Css8:1E 1E 1c 1c 1c 1c 1c 1B 64| ©788:80 06 G0 G6 GB GO GG GG 18)c9B8:B3 B4 BS BS B6 B7 B7 BB 22 


G-30 COMPUTE AUGUST 1993 


C9CG:B9 BA BA BB BB BC BD BE FD 
C9C8:BE BF C@ CO Cl C2 C3 C3 34 
C9DG:C4 C4 C6 C6 C7 C7 CB CO F5 
C9D8:CA CA CB CC CC CD CE CF D5 
C9E@:CF D@ Dl Dl D2 D3 D4 D4 4c 
C9E8:D5 D5 D7 D7 D8 D8 DY DA GE 
C9FG@:DB DB DC DD DD DE DF E@ ED 
COF8:E@ Bl El E2 £3 E4 E5 E5 44 
CAG@:E5 E4 E3 E2 El El EG EG AS 
CA@8:DF DE DD DD DC DB DB DA C7 
CA1@:D9 D8 D8 D7 D7 D5 DS D4 F7 
CA18:D4 D3 D2 Dl Dl D® CF CF C5 
CA2@:CE CD CC CC CB CA CA C9 DF 
CA28:C8 C7 C7 C6 C6 C4 C4 C3 18 
CA3@:C3 C2 Cl C8 CO BF BE BE DD 
CA38:BD BC BB BB BA BA B9 B8 FB 
CA4G6:B7 B7 B6 BS BS B4 B3 B2 6C 
CA48:B2 Bl BO AF AF AE AD AD F5 
CA5@:AC AB AA AA AQ AQ AB AT 14 
CA58:A6 A6 A5 A4 A4 A3 A2 Al 84 
CA6G:Al AM AG YE YE 9D 9D 9C 38 
CA68:9B 9A 9A 99 98 98 97 96 4C 
CA76:95 95 94 93 93 92 91 98 9C 
CA78:98 8F 8F 8D 8D 8C 8C 8B 48 
CA8G:8A 89 89 88 87 87 86 85 64 
CA88:84 84 83 83 82 81 8G 80 C5 
CA98:7F 7E 7E 7C 7C 7B 7B 7A 68 
CA98:79 78 78 77 76 76 75 74 7C 
CAAG:73 73 72 72 71 76 6F 6F DD 
CAA8:6E 6D 6D 6C 6B 6A 6A 69 88 
CABG:69 67 67 66 66 65 64 63 1D 
CAB8:62 62 61 61 6@ 5F 5E 5E FS 
CAC@:5D 5C 5C 5B 5A 59 59 58 AB 
CAC8:58 56 56 55 55 54 53 52 35 
CADG:52 51 58 56 4F 4B 4D 4D 8E 
CAD8:4C 4C 4B 4A 49 48 48 47 F8 
CAEG:47 45 45 44 44 43 42 41 4D 
CAE8:41 40 3F 3F 3E 3D 3C 3C A6 
CAFG:3B 3B 3A 39 38 38 37 36 15 
CAF8:36 35 34 33 33 32 32 39 BO 


Bill Soudan manipulates sprites in Gi- 
rard, Pennsylvania. 


MIDWAY COMMAND 


By Michael Sedlezky 

Midway Command is a two-player strat- 
egy game for the 64. You and a friend as- 
sume the roles of American and Japa- 
nese naval commanders during World 
War Il. 

Experience the Battle of Midway as 
each of you orders your powerful carrier 
forces into battle with each other. Your flo- 
tilla is made up of battleships, cruisers, de- 
stroyers, and aircraft carriers. There are 
14 vessels per side. Winning the game is 
accomplished by sinking your enemy's 
carrier. Your ships battle each other with 
cannon shells. 

Midway Command is written entirely in 
machine language, but it loads and runs 
like a BASIC program. To enter it, use 
MLX, our machine language entry pro- 


gram. See “Typing Aids” elsewhere in 
this section. When MLX prompts, re- 
spond with the following values. 


Starting address: 0801 
Ending address: 1680 


The game is played on a grid 
that resembles a standard checker- 
board. Each occupied square con- 
tains a marker that indicates a 
ship. The American marker is 
black, and the Japanese marker is 
white. 

Use your joystick in port 2 to po- 
sition the game's cursor to select a 
square of your choice. As the cur- 
sor moves over a square, a view of 
the ship is displayed along with its 
type and two scale bars. 


Ship Strength 

One scale represents the ship’s 
strength. This scale represents the 
amount of damage the ship can with- 
stand, As the scale decreases in 
size, the ship is in danger of sink- 
ing. Damage inflicted on any ship 
cannot be repaired. 


Ship Firepower 

The firepower scale represents the 
amount of damage the ship's guns 
will inflict on an enemy vessel's 
strength. This scale will increase if 
this ship fires the blow that sinks an 
enemy ship. As a ship gains expe- 
rience, it becomes a deadlier fight- 
ing vessel. 


Playing the Game 

The game is played in turns. Each 
player has the option either to 
move or to attack. The American 
commander starts first. You choose 
one of your ships by selecting it 
with the cursor and then pressing 
the fire button. You then have the op- 
tion either to move or to fight by 
pressing a function key. Follow on- 
screen directions. 

You finish a turn by selecting a tar- 
get square. The cursor is a green 
shade if the target square is within 
legal boundaries. In order for you to 
move onto a square, it must be un- 
occupied and within range. The bor- 
der flashes red if you attempt an il- 
legal move. 


Moving and Firing 

All ships can move at least one square 
in any direction. Destroyers can move 
two. 

To attack, you must select an enemy 
ship that is within firing range. Each 
ship has different ranges, and you can 
fire in any direction. The carrier cannot 
fire. A destroyer can fire a distance of 
only one square. Cruisers can fire two 
squares only; they cannot fire one 
square. A battleship can fire one or 
two squares. The battleship is your 
strongest piece, followed by the cruis- 
ers and then by destroyers. Protect 
your carrier at all times. 


Game Hints 

Whenever possible, force the enemy to 
move into your range of fire so you can 
get first shot. Use your cruiser or bat- 
tleship to finish off an enemy so you 
can increase your stronger piece’s fire- 
power. 

Fight cruisers with destroyers. Use 
the destroyers’ two-square advantage 
to jump to an adjoining square where 
the cruiser can't fire on you. 

If your opponent takes a defensive 
strategy, analyze the setup and probe 
the weakest side with your destroyers. 
Attack from different sides and try to 
draw the ships out of position. 


MIDWAY COMMAND 


6861:6C G8 G1 GG 9E 20 33 33 48 
@859:32 39 GG 86 BG GB 27 1D EB 
6811:13 69 1D 27 27 27 1D lp 30 
6819:27 27 27 27 68 OG 26 24 4E 
G821:22 28 24 26 26 26 24 24 69 
G829:26 26 26 26 G6 19 G3 OO 67 
9831:98 86 G6 FA OB GF BC GB BD 
G839:00 GG GG BO GB GB 8F GH 68 
G841:08 GG BG BO GB GG GG BB 51 
G849:96 G9 GB BG BG GB BG BG 59 
G851:00 6G 18 8G BGO 82 86 BO OF 
G859:AA 46 G2 7C 8G G5 FF 46 2F 
G861:06 7C BB BG BO BB BG BG 9B 
9869:06 84 GB GB BG BB BG BB 79 
G871:06 68 GB GB GB BG BB GB 81 
@879:06 G6 GG BG BG BB 87 BB 98 
G881:066 G3 G8 BG BB BB BG BB 91 
9889:06 GB GB GG BB GB GB BB 99 
G891:061 6G GB G63 BH GB 33 BO BB 
G899:03 FF @@ 79 FF @@ 3F FF 41 
G8A1:FE FF FF 3F FF FF @F FF C3 
G8A9:FF G7 FF FF 86 G6 GG GG 7B 
98B1:06 6G GB BG BG GG BB BB Cl 
98B9:08 6G GB GB BG BB 8B BG CA 
G8C1:08 6G GB BG GG GB BG BB D1 
G8C9:8% 88 GG CO GB GB 8G BG 27 
G8D1:06 D@ GB BB 9B BB BB D7 72 
G8D9:CB GG FF 9C GG FF FF 8@ 94 


AUGUST 1993 COMPUTE G-31 


PROGRAMS 


6951:06 
9959:00 
O961:FF 
@969:FE 
0971:06 
0979:06 
9981:96 
0989:06 
G991:66 
6999396 
G9A1:06 
G9A9:FE 
G9B1:06 
G9B9:G0 
G9C1:06 

69C9:60 68 
99D1: 00 
@9D9:06 
G9E1:F8 
G9E9:80 
G9F1:06 
G9F9:0G 
GAG1:00 
@AG9:00 
GA11:49 
GA19:00 
GA21:FE 
GA29:FF 
GA31:00 
GA39:06 


GAF9: 00 
OBG1:65 
GB09:96 


oo 
6S 
oo 


G-32 


FF 
6G 
96 
Ci) 
go 
Cy) 
Ci) 
1F 
PF 
CT) 
G6 
Ci) 
6G 
oa 
96 
oo 
FF 
06 
Cr) 
ao 
Cr) 
CT) 
CT) 
G3 
FE 
CK) 
ao 
oo 
GO 
is) 
vr) 
oa 
cc 
GG 
Cs) 
0G 
oo 
60 
ao 
EE 
FE 
Cr) 
aa 
89 
6a 
cs) 
BO 
FF 
FF 
go 
66 
oo 
i) 
oo 
Ct) 
FP 
c3 
oa 
i) 
Go 
oo 
oo 
Xe 
oo 
FC 
oO 
oo 
oo 
Go 
oo 


FF 
oo 
6G 
9G 
0G 
96 
oa 
7F 
FF 
06 
Vt) 
09 
Ti) 
oo 
ao 
FF 
FE 
Ui) 
oo 
a6 
Uy) 
6G 
06 
UT) 
FF 
1) 
ao 
1) 
60 
i) 
6G 
ca 
1) 
oo 
C11) 
ao 
v1) 
6a 
i) 
OF 
FF 
ao 
Cs) 
66 
i) 
Ur) 
Oo 
FF 
FR 
66 
6G 
Ui) 
Ot) 
rs) 
9G 
Cy) 
FE 
i) 
yt) 
oo 
Ur) 
a6 
9G 
FE 
OF 
ao 
oo 
oo 
Cy) 
96 


COMPUTE AUGUST 1993 


@B11:6¢6 
@B19:98 
@B21:7F 
@B29:FF 
GB31:48 
GB39:66 
0B41:80 
@B49:05 
@B51:99 
GB59:80 
OB61:FF 
OB69:FG 
6B71:66 
@B79:66 
@B81:300 
@B89:06 
@B91:09 
9B99:96 
GBA1L:96 
GBA9:FF 
GBB1:80 
GOBBI: 98 
GBC1: 06 
OBC9: G6 
@BD1:00 
@BD9: 63 


0C21:43 
@C29:FF 
6C31:06 
9C39: 06 
6C41:86 
6C49:66 
@C51:60 
@C59:A5 
GC61:FF 
OC69:FE 
6C71:06 
6C79:66 
@C81:60 
6C89:68 
6C91:86 
6C99:28 
GCA1: 36 
GCA9: GB 
GCB1:40 
GCB9: 06 
G6CC1:60 
6CC9: 86 
GCD1:46 
GCD9:38 
@CE1:60 
GCE9: G0 
OCF1:60 
GCF9: G8 
@DG1:A9 
@pg9:85 
@N11:8C 
@D19:FE 
@D21:F6 
@D29:CF 
@D31:61 
GD39:18 


@D41:GE 
@D49:93 
@D51:6B 
@D59:0D 
6D61:07 
@D69:F7 
@D71:13 
@D79:8D 
@D81:AG 
@D89:AD 
@D91:19 
@D99:47 
9DA1:35 
8DA9: 20 
@DB1:8D 
@DB9:CF 
6DC1:86 
GDC9:F9 
6DD1:61 
@DD9:GD 
@DE1:8D 
@DE9:8D 
ODF1:10 
@DF9:8D 
GEG1:20 
G569:8D 
GE11:GE 
@E19:14 
GE21:23 
@£29:8D 
GE31:CF 
9E39:CD 
@E41:A9 
GE49:CF 
GE51:99 
@E59:8D 
GF61:9D 
GE69:CF 
GE71:60 
GE79:AD 
@F81:55 
@E89:55 
GE91:55 
GE99: FF 
GEAL:FF 
GEA9:0D 
@EB1:6F 
GEB9: GC 
@EC1:6C 
@EC9:12 
@ED1:99 
@ED9:12 
@EE1:06 
GEE9: 26 
@EF1:@1 
GEF9:15 
GFO1:03 
GFG9:20 
GF11:GE 
GF19:20 
GF21:14 
GF29:95 
GF31:6B 
GF39:12 
GF41:13 
OF49:G0E 
GF51:20 
GF59:05 
GF61:12 
GF69:20 


DG 
D7 
96 
19 
16 
12 
8D 
16 
26 
ag 
FO 
AQ 
4c 
@D 
GE 
AG 
cg 
G1 
76 
8D 
CF 
GF 
bg 
CE 
ll 
13 
@4 
2D 
99 
ao 
78 
CA 
66 
14 
BD 
9D 
CF 
08 
9D 
78 
AA 
AA 
AA 
99 
FF 
19 
G4 
26 
Gl 
26 
26 
GE 
OF 
20 
26 
06 
GE 
09 
12 
12 
20 
13 
61 
17 
61 
13) 
GE 
16 
17 
GE 


GF71:68 
GF79:16 
GF81:12 
GF89:14 
GF91:2G 
GF99320 
@FA1:19 
OFA9: B80 
GFB1:9A 
@FB9:8D 
GFC1:2D 
GFC9:19 
@FD1:8D 
@FD9:8D 
G@FE1:8D 
GFE9:37 
OFF1:85 
GFF9:4A 
10661:8D 
1699:6F 
1611:BD 
1619:69 
1621:61 
1629:88 
1031:6D 
1639:60 
1641:26 
1049:CF 
1651:CF 
1059:BD 
1061: 2D 
10669:D9 
1071:A6 
1079:AD 
1081:CF 
1689:AG 
1091:A9 
1999:CA 
1G6A1:8D 
10A9:88 
19B1:61 
16B9:20 
16C1:88 
1609: 20 
16D1:11 
16D9:65 
1GE1:11 
18E9:DG 
1GF1:50 
10F9:9D 
1161:CF 
1169:A9 
1111:ED 
1119:AD 
1121:8D 
1129:CF 
1131:26 
1139:8D 
1141:CF 
1149:0A 
1151:66 
DUS 9 sue 
1161:63 
1169:88 
1171:6F 
1179:F8 
1181:D4 
1189:D4 
1191:11 
1199:8D 


BE 
E3 
33 
63 
c4 
BC 
B6 
BA 
86 
9c 
AD 
7¢ 
B4 
F8 
D8 
DB 
19 
30 
3D 
09 
98 
Ag 
4a 
81 
E4 
@3 
99 
16 
B9 
8D 
Ag 
76 
1A 
09 
2A 
1E 
8D 
88 
16 
63 
BO 
E6 
AD 
13 
22 
9E 
A8 
69 
6B 
De 
21 
47 
69 
G2 
DB 
a 
8C 
3F 
9A 
16 
ras 
82 
98 
71 
58 
2a 
E2 
68 
57 
75 


11A1:8D 
11A9:78 
11B1:14 
11B9:FA 
11¢C1:D4 
LLCO eI! 
11D1:FC 
11D9:84 
11E1:85 
11E9:65 
LLF1:A5 
11F9:CE 
1261:60 
1209:FF 
1211:06 
1219: 3F 
1221:8D 
1229:9D 
1231:78 
1239:61 
1241:9D 
1249:CE 
1251:8D 
1259:CA 
1261:9D 
1269:50 
1271:D4 
1279:9D 
1281:50 
1289:D4 
1291:16 
1299:68 
12A1: 67 
12A9:14 
12B1:32 
12B9:42 
12C1:4A 
1209:14 
12D1:BC 
12D9: 6B 
12E1:6B 
12E9:00 
12F1:A9 
12F9:A2 
1361:21 
1369:8D 
1311:CE 
1319:49 
1321:00 
1329:16 
1331:61 
1339:FE 
1341:69 
1349: 86 
1351:FF 
1359:16 


G4 
Dg 
CA 
G6 
85 
FE 
F8 
85 
8E 
CF 
85 
0G 
16 
EE 
FD 
09 
Cs) 
ce 
AD 
A8 
96 
09 
67 
OD 
BD 
99 
78 
BD 
99 
99 
8D 
Gl 
oc 
3c 
36 
A6 
AE 
B8 
15 
LS 
Cr) 
oo 
ag 
8D 
AG 
gl 
@D 
CF 
E6 
8D 
8D 
85 
CA 
FC 
FD 
Bl 


138 


1391:F1l 


26 
CF 
4c 


13B9:29 
13C1:ED 
13C€9:96 


13D1:93 
13D9:14 
13E1:92 
13E9:13 
13F1:08 
13F9:AD 
1461:8D 
1409:CF 
1411:19 
1419:0F 
1421:0E 
1429:GA 
1431:58 
1439:CF 
1441:3AD 
1449:EO 
1451:CF 
1459:28 
1461:6D 
1469:6E 
1471:90 
1479:CE 
1481:A9 
1489:D4 
1491:CA 
1499:69 
14A1:0D 
14A9: FO 
14B1:EE 
14B9;:GE 
14C1L:CF 
14C9:AD 
14D1:64 
14D9:EE 
14E1:04 
14E9:BD 
14F1:D8 
14F9:CF 
1561:7D 
1569:83 
1511:D3 
1519:A9 
1521:AD 
1529:D9 
1531:6F 
1539: 3B 
1541:8C 
1549:CF 
1551:18 
1559:18 
1561:18 
1569:8D 
1571:A9 
157 
158 
1589:8D 
1591:D8 
1599:DG 
15A1:CF 


23 
4E 
25 
Bl 
F8 
8c 
66 
E9 
14 
D7 
8B 
EA 
86 
13 
9E 
88 
51 
Dl 
20Cc 

43 
Al 
96 
76 
5D 
aly) 
76 
2D 
BE 
AA 
66 
Fl 
A8 
D7 
63 
D8 
B4 
41 
63 
Do 
92 
18 
BC 
6c 
72 
48 
26 
3D 
2D 
El 
8E 
53 
1F 


64 
cs 
64 
45 


8E 
39 
26 
62 
7A 
9A 
6c 


15C9:AA 
15D1:9D 
15D9:99 
15E1:26 
15E9:8C 
15F1:A9 
15F9:14 


BS 
99 
97 
CI) 
03 


AUGUST 1993 COMPUTE G-33 


PROGRAMS 


93 
78 
74 
78 
16 
16 
16 
AA 
D4 
16 
CF 
D4 
16 
4c 
Oo 
60 


cs 
45 
o9 
EO 
36 
6B 
DE 
16 
26 
E8 
C6 
3E 
69 
6E 
23 
32 


16 
8D 
16 
15 
4c 
16 
07 
AD 
CE 
CE 
16 
CE 
CE 
91 
6o 
0) 


Ag 
15 
8D 
63 
Ag 
49 
29 
19 
18 
85 
91 
18 
85 
D3 
1) 
i) 


1F 
63 
14 
58 
OF 
61 
G1 
CE 
69 
D3 
D3 
69 
D3 
8D 
@5 
9@ 


14 
68 
AD 
CE 
78 
7A 
79 
16 
85 
79 
a4 
85 
77 
16 
@5 
Ur) 


16293AD 
1631:8D 
1639:AG 
1641:BD 
1649:BD 
1651:BD 
1659:BD 
1661:BD 
1669:49 
1671:31 
1679360 


Michael Sedlezky is a 35-year-old me- 
chanic and father of four children. He’s 
the author of Gazette programs Code- 
busters, Hoverjet, and Checker Com- 
mand. He lives in Mississauga, Ontar- 
jo, Canada. 


CHASE 


By Jon Piltingsrud 

You're at home, quietly studying with a 
friend, when a fanfare of noise erupts 
from your 64. It announces the arrival of 
a message from aliens who have taken 
control of your computer. The communi- 
qué informs you that the advanced race 
has sent the two of you something impor- 
tant: a game! Before you know it, you and 
your friend are in deadly competition on 
the game's playing field. 

Chase is an arcade-style, two-player 
game for the 64 that requires two joy- 
sticks. The game consists of two pro- 
grams: Chase, a BASIC loader; and 
Chase ML, a machine language pro- 
gram. To help avoid typing errors, enter 
Chase with The Automatic Proofreader. 
See “Typing Aids” elsewhere in this sec- 
tion. Be sure to save a copy of the pro- 
gram before you try to run it. 

Chase ML is written in machine lan- 
guage. Use MLX, our machine language 
entry program, to enter it. When MLX 
prompts, respond with the following start- 
ing and ending addresses. 


Starting address: 2795 
Ending address: 3484 


Be sure to save the ML program with 
the filename CHASE ML on the same 
disk as Chase. Chase automatically 
loads this program when it runs and 
searches for that filename. 


G-34 COMPUTE AUGUST 1993 


The Rules 

When you run Chase, you'll see the 
message from the aliens. After you've 
read it, press any key, and you and 
your opponent will be on the playing 
field. One player operates the red disk 
and the other the yellow one. 

You'll see your weapons on the 
field. They resemble footballs. Each 
weapon is colored to match one of the 
players. The idea simply is to pick up 
your weapon and touch your oppo- 
nent, thereby destroying him. 

While the rules may be simple, exe- 
cuting the game plan isn't. Your oppo- 
nent will be trying to avoid you until he 
is armed. As powerful as these weap- 
ons are, they have a few quirks. You 
can hold them for only a few seconds 
before they fly from your grasp and 
land on another part of the screen. 

As you chase after your weapon, 
you may reach your opponent's first. If 
you touch your opponent's weapon, it 
will jump to a random location on the 
screen. To make the chase more inter- 
esting, each field has a number of ob- 
stacles scattered about it. 

To quit the game and see a tally of 
each player's kills, press the Q key. 
From the score screen, press either of 
the joystick fire buttons to resume. 


CHASE 

CS 16 REM COPYRIGHT 1993 - COM 
PUTE PUBLICATIONS INLT L 
TD - ALL RIGHTS RESERVED 
IFA=@THENA=1:LOAD"CHASE 
{SPACE}ML",8,1 

POKE56, 39:CLR:A=RND(-TI) 
2C=65526 
$=54272:D=56576:E=53272: 
F=53265 

POKEF ,, 0: POKE53289,: POKE 
53281,6 

FORL=GT023: POKES+L,@:NEX 
T 

PRINT" {CLR}{6}{DOWN} "7A 
S="1#S$5() *+,"+CHRS (34) 
POKES+24,15: POKES+18,128 
POKES+6, 255: POKES+2, 255: 
POKES+4, 33 
POKES+15,RND(G) *5+1 
POKED, PEEK (D)OR3: POKEE, 2 
8:POKEF, 27 
FORW=@T03:FORL=GTORND (8) 
*4 
PRINTMIDS (AS, INT (RND (@) * 
11+1),1); 
POKES+1, PEEK (S+27)/8:FOR 
T=1T050:NEXT 

NEXTL: PRINT" ";:NEXTW 


RB 12 
HQ 14 
FD 16 
MC 18 
PM 26 


22 


68 


73 


72 
74 
76 
78 
8G 
82 
84 
86 
88 
96 
92 
94 
96 


98 


164 
162 
164 
166 


168 
116 


112 


114 
116 
118 
120 


PRINTCHRS (13)CHRS$(145)TA 
B(13); 

READBS$: IFBS<>"Z"THENPRIN 
TBS$:GOTO32 

READBS$: PRINTBS: POKES+18, 
@:POKES+4,9 
POKE198,@:WAIT198,1 


POKE826,@:POKE821,0:SYS1 
6133 
POKEF,@: PRINT" {CLR}" 
POKE781,9: POKE782, 9: POKE 
783,0:SYSC 
PRINTTAB(9)"{GRN}/////// 
VINITITIITITT LT" 
PRINTTAB (9) "{RED} PLAYER 
{SPACE}ONE'S SCORE:"; 
A=PEEK(82@) : PRINTA: PRINT 
PRINTTAB (9) "{YEL}PLAYER 
{SPACE}TWO'S SCORE:"; 
B=PEEK (821) : PRINTB: PRINT 
: PRINTTAB (9) 
IFA>BTHENPRINT" {GRN} 
{3 SPACES}PLAYER ONE WIN 
s[" 
IFA<BTHENPRINT"{GRN} 
{3 SPACES}PLAYER TWO WIN 
st" 
IFA=BTHENPRINT" {GRN} 
{2 SPACES}THE GAME IS TI 
ED." 
PRINTTAB(9)"//////////// 
LITA1111/" 
POKE781, 24: POKE782,8:POK 
E783,0:SYSC 
AS="PRESS FIRE TO PLAY A 
GAIN" 
POKED, PEEK (D) OR3: POKEE, 2 
8:POKEF, 27 
PRINTTAB(8)"{GRN}"; 
A=46:GOSUB90:IFB=1THENSS 
PRINTTAB (8) "{BLK}"; 
A=10:GOSUB90:IFB=1THENSG 
GoTO8s 
PRINTAS;"{UP}":B=6:X=1 
IF (PEEK (56326) AND16) =OTH 
ENB=1 
IF (PEEK (56321) AND16) =OTH 
ENB=1 
IFB=QTHENX=X+1: IFX<>ATHE 
N92 
RETURN 
DATA 
H 
DATA 
DATA 
DATA 
@eae 
DATA 
DATA 
eeae 
DATA 
D 


LIVE BROADCAST WIT 
GAZETTE'S TACHYON 
IMPULSE COPYRIGHT 
CIRCA 1993. . .@@@ 


GREETINGS FROM THE 
PLANET +#S$%*&&S(). 


WE ARE WELL PLEASE 


DATA 
DATA 
DATA 
DATA 


TO BRING YOU THIS 
GAME PLAYED BY THE 
COOL GUYS AND GALS 
ON INHABITED PLANE 


GJ 122 
CH 124 
FX 126 


ER 128 
DB 138 


AS 132 


Gs 134 
HA 136 


CK 138 
JM 149 
JA 142 
FR 144 
CA 146 
RS 148 
BX 156 
QJ 152 
RA 154 
Sx 156 
EM 158 
AK 166 
FS 162 


EJ 164 


DATA THROUGHOUT THE KNO 
DATA STELLAR SYSTEM. @@@ 
DATA WITHIN MOMENTS THI 


DATA TWO PLAYER MARVEL 
DATA WILL BE TRANSFERRE 


DATA TO YOUR REMOTE 64. 


DATA FORTUNATELY ENOUGH 
DATA FOR YOU- WE HAVE M 


DATA IT POSSIBLE TO PLA 
DATA ON YOUR PRIMITIVE- 


DATA ALBEIT JUGGERNAUT- 
DATA COMPUTER INTERFACE 


-@@@ 

DATA COINCIDENTALLY- TH 
E 

DATA AUTHORS ALSO HAPPE 
N 

DATA TO BE AMONG YOU.@@ 
eee 

DATA THEIR NAME'S ARE. 
{SPACE}. . 


DATA TODD PILTINGSRUD A 
ND 

DATA JON{2 SPACES}PILTI 
NGSRUD. @@@@@ 

DATA IF YOU HAPPEN TO R 
UN 

DATA INTO THEM- TELL TH 
EM 

DATA TO PHONE HOME. @@@@ 
@aee 

DATA Z,.+. »END OF MESS 
AGE 


CHASE ML 


2795:A9 
279D:8D 
27A5:8E 
27AD: 2D 
27B5:8E 
27BD: 2B 
27C5:1F 
27CD:1E 
2705:2C 
27DD:E6 
27E5:6A 
27ED:2D 
27F5:D0 
27FD:78 
2805:99 
286D:63 
2815:80) 
281D:AD 
2825:4C 
282D:20 
2835:68 
283D:AD 
2845:8F 
284D:61 
2855:29 


GA 8D 24 2E 8D 6F 2E E3 
7D 2D 8D DC 2D A2 9G 71 
22 2B 8E 6D 2E 8E 7B 2F 
8E DA 20 8E 1A D@ E8 CB 
19 D@ 26 Bl 28 26 9B B7 
20 9F 2B AD 1E D@ AD 35 
DG AO G1 8D 1A DG AD 41 
DG 8D B4 2C 4A 8D B3 BS 
9G 2A A2 @0 26 El 2B 3D 
G2 D@ 18 EE 22 2E AQ BE 
8D 27 DG AY 64 8D 7B G4 
AD 15 D@ 29 FB 8D 15 57 
4C 62 28 E@ G3 DB BS 3c 
20 9F 2B 58 4E B3 2C C6 
31 A2 G1 20 El 2B EO GE 
D@ 18 EE 6D 2E AQ BA 86 
28 D@ AQ 64 8D DA 2D 27 
15 D@ 29 F7 8D 15 DG 27 
38 28 EG G2 DG GB 78 98 
9B 2B 58 4C 38 28 E® D3 
FO GF AQ 7F 8D 88 DC 4D 
81 DC C9 BF DG 88 4C 7B 
28 AD 7B 2D F@ G2 AY AF 
AE DA 2D FG 82 69 G2 9B 
03 FO DF C9 G3 FO DB 2F 


285D: 26 
2865: 8E 
286D:03 
2875:FB 


NOFVQH#NOGCCCCOTDOSRAVNOASASBBOBANGVISIUYT 


298D:00 
2995:62 
299D:2E 
29A5:03 
29AD:6E 
29B5:62 
29BD:6E 
2905:29 
29CD: 29 
29D5:AE 
29DD:BD 
}529E5:5¢ 

29ED:1B 
295: 2A 
29FD: 2A 
2AG5: 2A 
2AGD:58 
2A15:5E 
2A1D:5E 
2A25:5D 
2A2D: 3F 
2A35: 3F 
2A3D:41 
2045: 42 
2a4D:44 
2A55:02 
2A5D: 2A 
2A65:91 
2A6D: 62 
2A75: 06 
2A7D: 66 
2A85:AA 


96 
EE 
3F 
FB 
32! 
FB 
15 
8E 
A2 
AQ 
8D 
8D 
14 
26 
28 
Da 
27 
cg 
De 
DG 
DD 
8D 
8E 
PA 
Ly 
ol 
16 
6c 
@D 
68 
6B 
Ur) 
82 
ae} 
2B 
F2 
2B 
62 
63 
63 
3c 
2B 
G2 
2B 
AE 
BD 
56 
85 
a1 
91 
Ui) 
2A 
2A 
57 
5D 
SE 
SE 
5B 
3E 
3F 
41 
44 
65 
8c 
84 
G2 
93 
oo 
66 
BD 


2A9D:DB 
2AA5: 22 
2AAD:C8 
2AB5: 04 
2ABD:05 
2AC5:C8 
2ACD: 62 
2AD5:65 
2ADD:B1l 
2AE5:29 
2AED:91 
2AF5:65 
2AFD:AC 
2B@5:CE 
2B@6D:44 
2B15:05 
2B1D:40 
2B25:2B 
2B20:98 
2B35:CB 
2B3D:C6 
2B45:61 
2B4D:CF 
2B55:02 
2B5D: 04 
2B65:26 
2B6D:C5 
2B75:A8 
2B7D:A4 
2B85:00 
2B8D: 28 
2B95:09 
2B9D: FO 
2BA5:96 
2BAD:35 
2BB5: 2B 
2BBD: 64 
2BC5: 00 
2BCD: 8D 
2BD5: 2B 
2BDD:FB 
2BE5:2C 
2BED:CB 
2BFS:F9 
2BFD: FO 
2C05:DG 
2C6D:BD 
2C15:D9 
2C1D: 39 
2C25:A9 
2C2D:3D 
2C35:A9 
2C3D:C9 
2045:49 
2C4D:61 
2C55:FF 
2C5D:CB 
2C65:8E 
2C6D:CA 
2075: 67 
2C7D: 68 
2c85:2¢c 
2C8D:2C 
2095:88 
2C9D:9D 
2CA5:A2 
2CAD:16 
2CB5: 06 


65 
Dg 
c8 DO 
DG C8 
Bl 64 
65 04 
AG 86 
Bl 64 
65 04 
95 85 
G4 36 
7E C8 
G2.CB 
G2 85 
1D 2B 
1E 2B 
85 04 
CE lc 
6G 6B 
58 2B 
G1 62 
cc 61 
26 80 
04 C6 
DG GC 
D4 DS 
BE 26 
66 Cl 
48 98 
68 26 
64 AS 
66 85 
96 86 
88 2F 
G2 A2 
AG 2B 
48 AQ 
18 69 
DO 68 
GA GA 
E@ 2B 
GD EG 
OO F7 
8E BS 
2C GA 
5D AD 
55 38 
BO 64 
2c 38 
8D CC 
C4 2c 
G1 8D 
C4 2c 
@1 28 
FE FG 
FF 69 
FO 64 
99 BC 
2c 'c9 
CBE2C 
16 FA 
48 BD 
2c CC 
BO G6 
48 98 
16 DE 
B8 2C 
@3 BD 
F8 8E 
0G 6G 


AUGUST 1993 COMPUTE 


68 
cD 
cB 
2c 
2c 
oo 


DB 
Tt) 
8D 
Dg 
ag 
E6 
2B 
Ag 
A8 
OL 
G4 
Go 
98 
63 
D6 
65 
85 
1) 
58 
62 
CA 
G8 
C6 
G2 
ol 
Ol 
c2 
44 
68 
BC 
Go 
85 
oo 
06 
Ag 
69 
6E 
9D 
69 
GA 
DD 
66 
CB 
AD 
2c 
2c 
ol 
99 
Go 
DG 
2c 
Dg 
2c 
OF 
2c 
cg 
AQ 
AD 
G3 
2c 
AG 
2c 
BC 
BC 
CA 
86 
CB 
CA 
i) 
a6 


G-35 


PROGRAMS 


2CBD:0G GG 86 GO GG BG GG G1 17 | 2EED:G3 20 9F 2B 60 28 GB 8G YE |311D:73 G3 G3 BC G7 G3 7E 30 8C 
2CC5:0@ G2 G6 G4 GG GB BG GB FE | 2EF5:28 G2 80 AD GG DC 29 GF AG | 3125:18 GC FS 3C 66 66 BC 18 76 
2CCD:00 AG GF 8C G5 D4 BC GC 99 | 2EFD:49 GF AA AD 10 DG 29 G1 GA |312D:33 36 FC 68 38 18 GC G6 SC 
2CD5:D4 AG GA 8C G6 D4 BC GD 74 | 2FG5:8D 8C 2F 18 AD BG D@ 7D 41 |3135:73 DB 6E GE 1C 38 8G BO BB 
2CDD:D4 AG 96 8C GE D4 AG 29 89 | 2FgD:6B 2F 8D GB DG AD 8C 2F 24 | 313D:G8 BG OG CC 66 66 77 77 OF 
2CE5:8C 19 D4 AG G3 8C 1l D4 GE | 2F15:7D 76 2F 8D 8C 2F AD 10 1B | 3145:66 66 33 18 36 66 66 66 AA 
2CED:AG 81 8C G4 D4 8C GB D4 8C | 2F1D:DG 29 FE OD 8C 2F 8D 16 2B | 314D:G6 7C GG GG GB FE G6 E6 CO 
2CF5:A@ 40 8C 12 D4 AG G2 8C 1B | 2F25:DG 18 AD Gl DG 7D 81 2F 66 | 3155:3E 18 1E G6 FE 18 30 FC 56 
2CFD:FA 2F 78 A@ 8D 8C 14 G3 82 | 2F2D:8D G1 DB AD G1 DC 29 GF 64 | 315D:06 FC BG OG 3E FG 38 FO 19 
2D05:A@ 2F 8C 15 63 58 66 20 BB | 2F35:49 GF AA AD 14 D@ 4A 29 AD |3165:3F F3 GG GB GB GG BG GG 64 
2D8D:29 2D 26 88 2D 20 E7 2D BA | 2F3p:G1 8D 8C 2F 18 AD G2 DG 5G | 316D:38 38 70 BB GB GB BG BG GB 
2D15:20 2F 2E 26 7A 2E 26 F8 D8 | 2F45:7D 6B 2F 8D G2 DG AD 8C 37 |3175:38 38 G0 BG GO GO EF FF 62 
2D1D:2E 68 A8 68 AA AQ Gl 8D CF | 2F4D:2F 7D 76 2F GA 8D 8C 2F 33 | 317D:08 GG GG 7C C6 DE F6 C6 GE 
2D25:19 D@ 68 46 AD 15 D@® 29 DD | 2F55:AD 16 DG 29 FD @D 8C 2F A7 | 3185:C6 7C OG 18 18 78 18 18 D6 
2D2D:G4 D@ 4A AD 7B 2D FG @5 59 | 2F5p:8D 14 DG 18 AD G3 DG 7D BA | 318D:18 FF GG 7C C6 G6 1C 74 BA 
2D35:CE 7B 2D D@ 48 AD 7D 2D 69 | 2F65:81 2F 8D G3 NG 6G GB GG 3A | 3195:CB FE @G 7C C6 G6 3C G6 AC 
2D3D:C9 GA D@ OF AO G2 BD 27 Al | 2F6D:0G OG FE FE FE @@ @2 G2 99 | 319D:C6 7C OG GE 1E 36 E6 FF FA 
2D45:D@ 20 9B 2B A9 BB 8D 7D 1C | 2F75:G2 GO BG GG BG FF FF FF D4 | 31A5:06 G6 @G FE C@ FC 96 G6 88 
2n4D:2D FG 95 CE 7C 2D D@ 25 67 | 2F7D:96 66 6B OB GO FE G2 OG DB | 31aD:C6 7C BG 7C C6 CA FC C6 54 
2D55:A9 06 8D 7C 2D AE 7D 2D CB | 2F85:08 FE 62 G6 6 FE 82 G8 E3 | 3185:C6 7C OG FE C6 GC 18 18 39 
2D5D:BD 7E 2D 8D @@ D4 E8 BD 97 | 2F8D:CE FA 2F DG G8 AY 8G 8D 7A | 31BD:18 18 GG 7C C6 C6 7C C6 GB 
2D65:7E 2D 8D G1 D4 E8 8E 7D FO | 2F95:04 D4 8D OB D4 AD FB 2F 12 | 31c5:c6 7C GB 7C C6 C6 7E G6 C6 
2D6D:2D E@ BA DG G8 AD 15 DB DE | 2F9D:FG 21 CE FC 2F DB 1C AY G5 | 31CcD:Cc6 7c GO GO GB GO GG GO B2 
2075:09 64 8D 15 D@ 68 GO G6 66 | 2FA5:G5 8D FC 2F EE FS 3F AD G4 | 31D5:60 G8 0 GB GO BO GO GO 38 
2D7D:0A 39 35 3E 2A A5 1F 1F FA | 2FAD:F8 3F C9 D2 D@ GD AY BG CC | 31DD:48 BO BO BA BB BB BG GG 4a 
2D85:15 @@ 6G AD 15 DG 29 G8 8B | 2FB5:8D FB 2F AD 15 DO 29 FE D7 | 3165:08 GG BO BG BO GB GB GO 48 
2D8D:D@ 4A AD DA 2D F@ 65 CE 4C | 2FBD:8D 15 D@ AD FD 2F F@ 21 CC | 31ED:00 GG GO GG GB 15 15 1A EB 
2D95:DA 2D D@ 4G AD 7D 2D C9 4E | 2FC5:CE FE 2F D@ 1C AY G5 8D 5D | 31F5:1A 1B 1B GG GG 55 55 AA 3A 
2D9D:GA D@ GF AY G7 8D 28 DB 3D | 2FCD:FE 2F EE F9 3F AD F9 3F D8 | 31FD:AA FF FF @@ 00 54 54 A4 54 
2DA5:26 9F 2B A9 GB 8D 7D 2D 56 | 2FD5:C9 D2 DG BD AY BG BD FD 1F | 3295:A4 E4 E4 E4 E4 E4 E4 E4 49 
2DAD:F9 G65 CE 7C 2D D@ 25 AD G4 | 2FDD:2F AD 15 DO 29 FD 8D 15 60 | 32gp:E4 E4 E4 1B 1B 1B 1B 1B 62 
2DB5:66 8D 7C 2D AE 7D 2D BD 5C | 2FE5:D@ AD 1B D4 8D G1 D4 8D 78 | 3215:1B 1B 1B 1B 1B 1A 1A 15 6D 
2DBD:DD 2D 8D 67 D4 E8 BD DD 18 | 2FED:68 D4 68 A8 68 AA AY Gl SF | 321D:15 @G GO FF FF AA AA 55 61 
2DC5:2D 8D 68 D4 E8 8E 7D 2D 12 | 2FF5:8D 19 D@ 68 48 8G GB G5 B9 | 3225:55 GG GB E4 E4 A4 A4 54 DO 
2DCD:E@ GA DO G8 AD 15 DB GI 22 | 2FFD:66 G5 2C GG GB BG GB BG 23 | 322D:54 BG GB 54 5C 58 78 68 JE 
2D05:08 8D 15 D@ 68 GB G6 GA 6G | 3665:G6 BG GB BG BB 7C GE 7E El | 3235:E8 28 28 28 2B 29 2D 25 1D 
2DDD:6B 2F A2 25 31 1C Dl 12 16 | 360D:C6 7E GB CG CO FC C6 C6 CA | 323D:35 15 D7 GO BA 2A 2B 2D FB 
2DE5:0@0 @@ AD 22 2E F@ 35 AD 65 | 3015:C6 FC 68 GG GB 7E CB CG 54 | 3245:35 15 D5 OD BS DS 57 SC 25 
2DED:24 2E C9 GA D@ G7 AY BB BS | 361D:CG 7E GB BE B6 7E C6 C6 5C | 324D:76 CO BB 5C 7A EA AA GO B4 
2DF5:8D 24 2E F@ 65 CE 23 2E CC | 3625:C6 7E 68 BB BB 7C C6 FE G7 | 3255:G6 BG GB BG AA AA AB GD 1lE 
2DFD:D@ 22 AO G6 8D 23 2E AE E2 | 362D:CG 7C GG GE 18 18 7E 18 24 | 325p:gg g@ BO GD BS DS 57 SC A2 
2605:24 2E BD 25 2E 8D @@ D4 85 | 3635:18 18 6G BG BG 7E C6 C6 FS | 3265:99 @G BG 5C 7A EA AA Gl 65 
2E0D:E8 BD 25 2E 8D Gl D4 E8 D7 | 303D:7E G6 FC C@ C@ FC C6 C6 58 | 326p:gg ao GG GO AZ AB AB 68 33 
2E15:8E 24 2B E@ GA DG G5 AY DC | 3045:C6 C6 GG 38 GO 78 18 18 68 | 3275:68 28 28 28 28 29 29 2A G2 
2E1D:00 8D 22 2E 6@ BG G6 GA 1D | 364D:18 7C GO G6 GB G6 G6 G6 63 | 327p:2A GA GB GG GB GG 40 AA A4 
2625:1F 15 A5 1F 3E 2A 39 35 3F | 3055:06 86 7C C@ C@ CC D8 F8 BY | 32g5:aB AD 35 GG GG BB 35 D5 12 
2E2D:6@ GG AD 6D 2E F@ 38 AD 69 | 305D:CC C6 GG 78 18 18 18 18 C6 | 3280:57 5E 74 GO GG GG 7G EA GF 
2E35:6F 2E C9 GA DG 67 AD GB A4 | 3065:18 7C GB GB GG C6 FF FF GBC | 3295:AA AA GO GG GB GG GG AA A4 
2E3D:8D 6F 2E F@ @5 CE 6E 2E 7F | 366D:DB C3 68 BG BB FC C6 C4 F4 | 329D:AB AD 35 6G G3 GD 35 D5 76 
2B45:D0 25 A9 G6 8D 6E 2E AE 1A | 3075:C6 C6 GB BG BG 7C C6 C6 31 | 32a5:57 5E 70 57 54 5C 78 ES BE 
2E4D:6F 2E BD 7@ 2E 8M @7 D4 36 | 347D:C6 7C 68 BB BB FC C6 C6 AB | 32AD:A8 AG BB GO GG AA 8B 8G BA 
2E55:E8 BD 76 2E 8D @8 D4 FB A5 | 3085:FC CO CG BG GG 7E C6 C6 FA | 32n5:8F 8C 8C GO GB AA BG GO 41 
2E5D:8E 6F 2E EG GA D@ G8 AY FD | 388D:7E G6 G6 BO BG FC C6 CG Bl | 328n:FF GG GG GG GG AA G2 G2 D2 
2£65:00 8D 6D 2E 8D 88 D4 6G 4C | 3995:CB CO GB BB BB 7E CB 7C 7E | 32c5:F2 32 32 BC BC BF BB 8G 63 
2E6D:00 66 GA Dl 12 31 1C A2 D9 | 369D:06 FC 6G 18 18 FE 18 18 C6 | 32cp:AA GG GG GG GG FF G0 GO 87 
2E75:25 6B 2F 6G OG AD 1F D@ EA | 36A5:18 GE GB BG BB C6 C6 C6 GS | 32p5:An GO GG 32 32 F2 G2 G2 16 
2E7D:4A 48 9G 1A AD F2 2E 8D E7 | 36AD:C6 7E 3G BG BG C6 C6 C6 8G | 32pD:AA GG GB BC 8C BC BC BC 9C 
2£85:00 D@ AD 16 D@ 29 FE GD G3 | 39B5:7C 38 GG GG BG 63 6B 7E 46 | 3265:8C BC 8C 32 32 32 32 32 59 
2E8D:F3 2E 8D 16 D@ AD F4 2E 77 | 36BD:3E 36 G8 BG GG C6 6C 38 F6 | 32ED:32 32 32 2A AS 83 3F FD BG 
2E95:8D @1 D@ 4C AF 2E AD @@ 69 | 30C5:6C C6 BO BB BB C6 C6 C6 7D | 32F5:D5 54 42 AB 2A C2 FC 7F G3 
2E9D:D@ 8D F2 2E AD 16 DG 29 7F | 36CD:7C 38 FG GB BG FE GC 38 E4 | 32FD:57 15 81 6G GG BB GG GB 83 
2EA5:61 8D F3 2E AD G1 D@ 8D E7 | 36D5:66 FE 98 1C 1C 1C 1C 1C 8D | 33¢5:00 GG GG GO GG GG GG G2 6D 
2EAD:F4 2E 68 4A 48 96 1A AD 28] 36DD:1C G8 1C 86 GG BB BG GB CF | 33gD:AA 8G GA AA AG GA 55 AG 4D 
2EB5:F5 2E 8D 62 D@ AD 16 DG 98 | 3GE5:GG6 GB GB BG GB GG GO BB 46 | 3315:29 55 68 29 7D 68 29 FF E4 
2EBD:29 FD GD F6 2E 8D 16 D@ D7 | 3GED:G0 6G GB BB GO BG GB BO 4E | 331D:68 29 FF 68 29 7D 68 29 Cl 
2EC5:AD F7 2E 8D @3 D@ 4C E2 6C | 3GF5:60 BG GB BG BG BB BB GO 56 | 3325:55 68 GA 55 AB GA AA AG 4A 
2ECD:2E AD @2 DG 8D F5 2E AD 48 | 3GFD:9G GG BG GG GG BB GB GB SE | 332p:G2 AA 86 GH GG GG GG OG 4F 
2ED5:16 D@ 29 G2 8D F6 2E AD G6 | 31465:60 BG BB 7C C6 C6 6C 18 71 | 3335:g4 BG BB GB GB BB BG 2G OB 
2EDD:03 D@ 8D F7 2E 68 4A 48 11 | 316D:30 34 1F 96 86 7C CB C@ 3C | 333p:g6 BG G8 GB GB GB BG GG A4 
2BE5:99 63 20 9B 2B 68 4A 94 29 | 3115:7C G6 G6 C@ CG CE DB DB D8 | 3345:4¢ gG GB GG GO GO GO GG AB 


G-36 | COMPUTE AUGUST 1993 


334D:06 08 GB GB GB GB GB BG B3 
3355:08 G8 68 GB 28 BB GB AA AT 
335D:08 62 96 86 6G AA BB GB C9 
3365:28 66 90 GB BB BG GB GB DF 
336D:08 66 GB GO GG BB GB GB D3 
3375:068 6G GB BB GG BG GB BG DB 
337D:68 66 G2 G6 GG GB BB GG 24 
3385:98 66 GG G6 GG BG GO G2 ED 
338D:8A 80 GA AA AG GA 54 AG BB 
3395:29 55 68 28 7D 66 29 FF 35 
339D:68 G9 FF 68 29 7C 68 29 36 
33A5:55 68 68 55 20 GA AA AG 46 
33AD:02 A2 86 GG GG BG GB GB CD 
33B5:66 69 96 G8 GG GG BB BG IC 
33BD:08 00 68 GG 6G GG GB GB 25 
33C5:06 G6 6G BB BG BGO GO G2 2E 
33CD:GA 86 GA 8A AG GA 56 AB Bl 
33D5:29 54 68 20 7D 406 98 FF Fl 
330D:60 09 FF 68 29 76 68 26 39 
3365:54 68 G8 54 26 GA 82 26 25 
33ED:02 A2 86 6G GG BO GB GB GE 
33F5:08 G6 G8 OG BB BG BB GB SC 
33FD:06 G6 G8 BB GB BG BB BB 65 
3405:06 G6 88 GG GG BG GB G2 GF 
3460:0A 66 62 8A AG G8 5B AGB CO 
3415:29 54 28 20 76 48 G8 3F 62 
341D:66 66 CF 46 29 76 68 26 AF 
3425:54 68 68 14 26 GG 82 GG 1A 
342D:062 AG BG BG BB BB GB BG BE 
3435:00 G0 GG GB BG BB BB BG 9D 
343D:08 68 G8 BG BH GB GB BB AG 
3445:06 G8 G@ G@ OG BG BB G2 AF 
344D:GA 66 G2 88 AG BB 5G 86 C9 
3455329 14 28 26 76 406 G8 33 26 
345D:68 08 CC 6G 28 76 68 26 83 
3465:44 48 68 14 26 GB 82 GO 4A 
346D:02 20 66 88 GB GB GG BG DE 
3475:08 64 GG 8G G6 GB GB BG DD 
347D:06 GG G8 GO BB GB BO GG E6 


Jon Piltingsrud lives in New Richland, 
Minnesota. 


MEMORY MONITOR 


By Kenneth R. Warrick 

Several weeks ago, | was in a room filled 
with more than 200 people, demonstrat- 
ing a program that did a lot of string build- 
ing. After a while, the program came toa 
screeching halt by the inevitable gar- 
bage collection process. 

For more that a minute, | had all these 
people cooling their heels while my trusty 
64 did its housekeeping. | thought to my- 
self how helpful it might be to keep a run- 
ning check on the amount of string stor- 
age space still available. 

Of course, this number is what we are 
looking for when we execute the BASIC 
FRE command. But since FRE performs 
garbage collection first, it doesn’t tell us 
how much space has been taken up by 
obsolete string fragments. An onscreen 
monitor that would keep track of space 


available would be just what the doctor 
ordered! 

That's what Memory Monitor for the 64 
does. It's a machine language utility that 
keeps track of the amount of free memo- 
ty remaining and prints it in the upper 
left corner of the screen. 


Typing It In 

Memory is a BASIC loader that creates 
Memory Monitor when it runs and 
saves the machine language program 
to disk with the name Memory Monitor. 
To help avoid typing errors, enter Mem- 
ory with The Automatic Proofreader. 
See “Typing Aids” elsewhere in this sec- 
tion. Be sure to save a copy of the pro- 
gram before you try to run it. 

Before | get into the program itself, 
here's a little of the process that went 
into its creation. 

Sparked by the creative muse, | 
thumbed through my copy of Mapping 
the Commodore 64 and 64C to find the 
location of the pointers at the begin- 
ning and end of RAM that's available 
for string storage. The end of the BA- 
SIC array storage area (+1) marks the 
first byte of the string storage area. 
This address is stored at 49-50 ($31- 
$32). Creating numerical variables 
takes up memory, moving this number 
upward and reducing the amount of 
space left available for strings. 

As strings are created, storage be- 
gins at 40959 ($9FFF) and moves down- 
ward toward the address found in $31- 
$32. Thus the low end of currently 
used string space marks the highest ad- 
dress still available for string storage. 
This address is kept at 51-52 ($33- 
$34). By subtracting, we could find our 
number. 

We don't want our monitor to take 
up any precious RAM, so we shouldn't 
write a long BASIC routine to do the 
job. A machine language routine 
that’s hidden away would be best. 

Our routine should run unattended 
in the background without having to be 
called repeatedly from our BASIC pro- 
gram. The Kernal has in its bag of 
tricks a routine which every '/eo second 
interrupts whatever BASIC is doing to 
increment the clock, control flashing of 
the cursor, update whatever needs to 
be on the screen, and check the key- 
board buffer for any keypresses. By 
wedging our routine in ahead of all 


these housekeeping chores, our task 
could be taken care of automatically. 

Getting back to our little subtraction | 
problem, subtracting the address 
found at $31-$32 from the address 
found at $33-$34 obtains our number 
in the form of two bytes in the mathe- 
matical format of base 256. How do we 
convert this to decimal format that hu- 
mans can understand? Programmers fa- 
miliar with Kernal routines will recall the 
routine LINPRT found at 48589 
($BDCD) which is normally used to con- 
vert the two-byte BASIC line numbers 
to decimal and print their ASCII repre- 
sentation to the current output device. 
That should take care of this project in 
short order. 

Wrong! The interrupt routine has a 
strict time schedule that will only allow 
us to wedge in a fairly short routine. An- 
ything longer will crash! That is just 
what LINPRT is—too long. Back to the 
drawing board! 

By writing an efficient routine that util- 
izes a large (2048 byte) lookup table, 
we can meet the time schedule. 
Those of us who hate mile-long lists of 
DATA statements will like how short our 
loader is. Our lookup table is created 
for us by some fancy mathematics in 
lines 30-60. 

The program searches the first part 
of our lookup table for the screen 
POKE codes (which for the digits 0-9 
are the same as their ASCII codes) for 
multiples of 256 (represented by the 
high byte obtained from our subtrac- 
tion) in decimal format. The results are 
parked in a five-byte holding area at 
$C800-$C804. 

The second part of the lookup table 
has the values of 0-256 (represented 
by the low byte) to be added into our 
five bytes. Later we correct for any of 
these sums that exceed 9 and make ap- 
propriate carries. Then, poke to the 
screen, color it white, and exit to the nor- 
mal interrupt routine. 

After reading the code for the work- 
ing routine from DATA statements and 
poking it into place, our loader creates 
the lookup table. It then saves the en- 
tire bundle to disk with the filename 
MEMORY MONITOR by calling the Ker- 
nal routine SAVE at 65496. 

Once Memory Monitor is on your 
work disk, you can load it with the ,8,1 
extension and run it with SYS 51205. 


AUGUST 1993 COMPUTE G-37 


PROGRAMS 


You can also load and run the routine 
from within a BASIC program with the 
following line. 


10 IF J=0 THEN J=1: LOAD ‘MEMORY 
MONITOR”,8,1 20 SYS 51205 


The manipulation of J prevents endless 
loop recycling since a LOAD com- 
mand from program mode automatical- 
ly executes a GOTO the first program 
line. While this may be done easily at 
the beginning of a BASIC program, lo- 
cating it anywhere else would require 
a first line of IF J=1 THEN XXX, with 
XXX the line with the SYS command. 
Here's an easier one-liner that may 
be located anywhere in your program. 


10 POKE 780,0: OPEN8,8,8,1,"“MEMORY 
MONITOR”: SYS 65493: CLOSE 8: 
SYS 51205 


To turn off Memory Monitor and re- 
turn to guessing how much memory is 
left, enter SYS 51326. 


MEMORY 


DM 1 REM COPYRIGHT 1993 - COMP 
UTE PUBLICATIONS INTL LTD 
- ALL RIGHTS RESERVED 
HA 5 PRINT" {DOWN}WAIT 66 SECON 
DS...":PRINT"CREATING MEM 
ORY MONITOR" 
16 FORI=51205 TO 51338:READ 
A:CK=CK+A: POKEI ,A:NEXT 
28 IFCK<>16246THENPRINT"ERR 
OR IN DATA STATEMENTS":E 
ND 
FORN=6T0255:JS=RIGHTS ("@ 
GG0G"+MIDS (STRS(256*N) ,2 
) ,5) :FORK=1T05 
POKE48896+256*K+N,ASC (MI 
DS(J$,K,1)) :NEXT:NEXT 
FORN=6T0255: JS=RIGHTS ("9 
G6"+MIDS (STRS(N) ,2) ,3):F 
ORK=1T03 
POKE5G176+256*K+N, VAL (MI 
DS$(J$,K,1)) :NEXT:NEXT:0P 
EN8,8,8,"MEMORY MONITOR" 
POKE25@,6:POKE251,192:PO 
KE789, 250: POKE781,138: PO 
KE782,200:SYS65496 
DATA 120,169,18,141,29,3 
,169,260,141,21,3,88,96, 
56,165,51,229,49,133,251 
7165 
DATA 52,229,50,168,185,0 
1192,141,0,260,185,0,193 
7141,1,200,185,0,194,141 
2 
’ 
HR 106 DATA 200,185,9,195,141, 
3,266,185,0,196,141,4,2 


COMPUTE AUGUST 1993 


MC 


sc 


SX 36 


JB 49 


RJ 58 


XK 68 


DM 76 


JK 86 


BA 90 


G-38 


60,24,164,251,185,0,197 
1109,2 

DATA 264,141,2,200,185, 
@,198,169,3,200,141,3,2 
G8,185,0,199,199,4,208, 
141,4 

DATA 266,160,5,162,9,13 
4,252,162,0,185,255,199 
124,101,252,201,58,144, 
4,24 

DATA 165, 246,232,153,25 
5,3,169,1,153,255,215,1 
36,208,227,76,49,234,12 
6,169 

DATA 49,141,20,3,169,23 
4,141,21,3,88,96 

PRINT" {DOWN}ACTIVATE ME 
MORY MONITOR WITH SYS 5 
1205" 


QQ 119 


SF 126 


HG 136 


sc 146 


MC 156 


Kenneth R. Warrick is a physician who 
lives in Charleston, South Carolina. 


CUBIC 


By Stephen A. Bakke 

Cubic is a logic puzzle for the 64, Itresem- 
bles a brightly colored cube whose six 
sides can be twisted to mix up the colors. 
When the puzzle starts, the colors are 
mixed randomly. The object of the puz- 
zle is to maneuver the colored pieces so 
that each side consists of but one of the 
six colors. 

Presenting six sides of a cube on- 
screen at one time can be a problem. To 
get around this difficulty, Cubic unfolds 
the cube and displays the sides next to 
one another on the screen. 

Cubic is written in machine language. 
To enter it, use MLX, our machine lan- 
guage entry program. See “Typing 
Aids" elsewhere in this section. When 
MLX prompts, respond to the following 
starting and ending addresses 


Starting address: 0801 
Ending address: OEE8 


Be sure to save a copy of the program 
before exiting MLX. Although Cubic is 
written in machine language, it loads 
and runs like a BASIC program. Oper- 
ator input is controlled exclusively by a 
joystick plugged into port 2. 


Getting Started 

The top screen line is Cubic's status 
line. It displays the program name, num- 
ber of turns taken, and the best score 
achieved. Below it are six squares 


that represent the sides of a cube. 
Each square consists of 16 smaller 
squares of various colors arranged in 
four columns by four rows. 

To solve the puzzle, swap rows and 
columns of squares between the sides 
of the cube until all squares within 
each of the six sides contain a single 
color. Columns run up and down and 
are numbered 1 on the left through 4 
on the right. Rows extend left and 
right and are numbered 1 on the top 
through 4 on the bottom. 

The bottom screen line is used for op- 
erator input. Four inputs are required to 
exchange a row or column between 
two sides of the cube. Push the joys- 
tick left or right to highlight Row for row 
or Col for column. Press the fire button 
to enter your selection. 

The next entry determines the row or 
column. Push the joystick left or right to 
change the row or column number. 
Press the fire button when the desired 
number is displayed. 

Then select the cube number from 
which the swap is desired and press 
the fire button. Next, select the cube 
number to which the swap is desired 
and press the fire button again. The 
swap will occur, the number of turns 
will be incremented, and the bottom 
line will clear in preparation for the 
next move. 

The puzzle is solved when each 
cube contains only squares of the 
same color. The screen will remain un- 
changed while the border cycles 
through various colors until you press 
the fire button. After you press the but- 
ton, the best score will be set, the num- 
ber of turns will be reset, and the six 
sides will be scrambled in preparation 
for another game. 


CUBIC 


@861:0B 
6869:31 


GA 
06 


36 
Ek 


73 
4c 
CA 
De 


@831:8D 
G839:G6A 
0841:FB 
G849:D8 
9851:8E 


GE 
D6 
Ag 
68 


G86 
686 
G871:GE 


1E 


oo 


G879:A2 
G881:91 
@889:A2 
@891:91 
@899:A2 
G8A1:86 
@8A9:82 
68B1:48 
O8B9:EE 
G8C1:A9 
G@8C9:AA 
08D1:06 
G8D9:GE 
G8E1:EC 
@8E9:D0 
O8F1:GE 
G8F9:A9 
6961:C9 
G969:18 
G911:26 
@919:E8 
@921:AD 
0929:0E 
6931:60 
G939:GE 
0941:CE 
G949:26 
6951:89 
9959:7D 
@961:8A 
0969:48 
G971:A6 
0979:08 
6981:69 
G989:69 
9991:CD 
0999:F9 
G9A1:69 
@9A9:BD 
G9B1L:F9 
@9B9:AC 
69C1:91 
69C9:DE 
99D1:65 
09D9:69 
@9E1:AD 
G9E9:FD 
G9F1:AD 
G9F9:85 
GAG1:FC 
GAG9:348 
GA11:GE 
GA1LO:AA 
GA21:CA 
GA29: 28 
GA31:AA 
GA39:GA 
GA41:29 
GA49:26 
GA51:EC 
GAS9:CA 
GA61:GE 
GA69:5G 
GA71:GE 
@A79:8D 
GA81:GE 
GA89:CF 
GA91:26 
GA99:A8 
GAAL:B1 


GAA9:D3 
@AB1:8D 
GAB9:GA 
GAC1:D8 
@AC9:GE 
@AD1:46 
@AD9:6D 
GAE1:GE 
GAE9:65 
GAF1:11 
GAF9:GE 
GBG1:AD 
@BG9:D2 
6B11:68 
0B19:60 
@B21:CA 
@B29:07 
0B31:66 
9B39:6D 
9B41:68 
@B49:94 
GBS1:F7 
3B59:CA 
9B61:DC 
9B69:9R 
@B71:D6 
6B79:A2 
OB81:EE 
GB89:DG 
0B91:30 
@B99:4C 
@BA1:GE 
O@BA9:09 
@BB1:68 
@BB9:A9 
@BC1:F7 
GBC9:FG 
@BD1:DC 
@BD9: 26 
@BE1:4C 
GOBE9:GE 
@BF1:D4 
ORES: 26 
OCO1:GE 
@CG69:8D 
@C1l1:7F 
@C19:DE 
GC21:69 
6C29:GF 
6C31:2E 
6C39:CE 
6C41:26 
@C49:D5 
@C51:8D 
6C59:4B 
9C61:D5 
6C69:G6 
O@C71:A2 
GC79:A9 
GC81:A9 
GC89:91 
@C91:DG 
6C99:387 
GOCAL:F7 
GCA9:E7 
GCB1:85 
GCB9:A8 
GCC1:E6 
GCC9:6G 
G@CD1:F8 


AD 
69 
EG 
GE 
CE 
AD 
GE 
GE 
OF 
18 
DL 
48 
8D 
oo 
79 
29 
FO 
EC 
68 
AF 
ag 
Ag 
Bi: 
FO 
pc 
20 
4c 
GE 
CA 
26 
GE 
8D 
4B 
DS 
99 
OF 
36 
CE 
20 
GE 
AQ 
17/ 
6B 
G2 
91 
c2 
8D 
Cy) 
co 
16 
@D 
DS 
G2 
91 
25 
De 
36 
4c 
o7 
F7 
F7 
85 
AB 
E6 
66 
F8 
86 
cD 
ag 
Bl 


@CD9:7F 91 F7 E6 F7 A6 F7 EG AE 
GCE1:CD DG F2 60 AI G2 8D C9 B3 
OCE9:GE AQ 58 8D CB GE 6G AY 3F 
GCF1:56 8D C9 GE AO G2 8D CB EB 
AQ 6G 48 AA BD B8 87 
CD @E BD BE @E 8D B2 
AS 66 8D C8 GE 20 GF 
EE C8 GE 20 7D 69 67 
@D 20 7D 89 20 33 37 
7D 69 26 33 OD 68 5A 
8A C9 66 DG CD 4c 1c 
AQ GG 48 8D Dl BE 3D 
G9 206 49 GD 68 AA 64 
8A C9 68 DG ED 66 B7 
AE Dl GE FO 68 Bl 9C 
D3 GE D@ GF 6G AE 68 
FO 63 4C 50 6D Bl 19 
D3 GE 66 68 68 68 14 
68 4C 29 G8 A2 GG 52 
18 26 FO FF AE D6 22 
G6 26 CD BD 60 A2 CF 
26 18 20 FO FF AE BC 
AI @6 20 CD BD 60 5C 
D6 GE CD D7 GE BO 79 
@D99:G3 8D D7 GE 64 20 91 BD 28 
GDA1:A9 6G 8D D6 GE A2 18 AG 7B 
26 FO FF A9 9C AG DE 
1E AB AG G8 C8 CG BG 
G2 AG G1 8C 26 DG AS 
A2 FF 26 43 68 68 15 
G9 DC 29 10 DO E6 83 
8C 26 DG 4C 17 G8 BD 
AG 6G A2 CD 86 F7 36 
86 F8 91 F7 A2 D5 F6 
91 F7 A2 DE 86 F7 8C 
66 A9 BC 8D 18 D4 15 
10 8D 65 D4 AY 8G DB 
D4 A9 BA A2 GB 18 BD 
E8 E9 GA DB FS 8D 59 
AQ 25 8D GG D4 AD 2A 
@4 D4 A2 14 26 43 DF 
@6 8D 64 D4 8D G5 18 
@6 D4 8D 66 D4 8D C4 
8D 17 D4 8D 16 D4 B4 
D4 66 G4 G4 G4 BE 48 
@5 18 1B 65 19 1B Bl 
DO CF D@ CF DO CF BO 
@6 12 CC BA CC BA 41 
CC BA 92 @@ 1E 43 E3 
49 43 9F 26 26 26 F3 
26 54 55 52 4E 53 CA 
20 28 20 26 42 45 F6 
286 26 26 26 60 52 2E 
20 43 4F 4C 20 26 5F 
46 52 4F 4D 26 28 BB 
26 20 26 54 4F 26 DC 
6G 58 52 45 53 53 74 
49 52 45 26 54 4F 50 
4C 41 59 26 41 47 9C 
4E 2E 2E 2E 60 A5 3D 
35 48 4B 2C 2C 2C 57 
2E 68 G1 27 G1 G2 EE 
GG 66 3B 2F G6 9G G5 
@D GB GG GG DE G9 56 
69 14 1F 63 63 63 38 
GD GB GB BG BB GB 69 


Steven Bakke writes puzzling pro- 
grams in Aurora, Colorado. a) 


AUGUST 1993 COMPUTE G-39 


AUTOMATIC PROOFREADER 


The Automatic Proofreader helps you 
type in program listings for the 128 and 
64 and prevents nearly every kind of 
typing mistake. 

Type in Proofreader exactly as list- 
ed. Because the program can't check 
itself, be sure to enter each line care- 
fully to avoid typographical errors or oth- 
er mistakes. Don't omit any lines, even 
if they contain unusual commands. Af- 
ter you've finished, save a copy of the 
program before running it. 

Next, type RUN and press Return. Af- 
ter the program displays the message 
Proofreader Active, you're ready to 
type in a BASIC program. 

Every time you finish typing a line 
and press Return, Proofreader displays 
a two-letter checksum in the upper left 
corner of the screen. Compare this re- 
sult with the two-letter checksum print- 
ed to the left of the line in the program 
listing. If the letters match, the line prob- 
ably was typed correctly. If not, check 
for your mistake and correct the line. Al- 
so, be sure not to skip any lines. 

Proofreader ignores spaces not en- 
closed in quotation marks, so you can 
omit or add spaces between keywords 
and still see a matching checksum. 
Spaces inside quotes are almost al- 
ways significant, so the program pays 
attention to them. 

Proofreader does not accept key- 
word abbreviations (for example, ? in- 
stead of PRINT). If you use abbrevi- 
ations, you can still check the line by 
listing it, moving the cursor back to the 
line, and pressing Return. 

If you're using Proofreader on the 
128, do not perform any GRAPHIC com- 
mands while Proofreader is active. 
When you perform a command like 
GRAPHIC 1, the computer moves eve- 
rything at the start of BASIC program 
space—including the Proofreader—to 
another memory area, causing Proof- 
reader to crash. The same thing hap- 
pens if you run any program with a 
GRAPHIC command while Proofreader 
is in memory. 

Though Proofreader doesn't interfere 
with other BASIC operations, it’s a 
good idea to disable it before running 
another program. To disable it, turn the 
computer off and then on. A gentler 
method is to SYS to the computer's 
built-in reset routine (65341 for the 128, 
64738 for the 64). 


G-40 COMPUTE AUGUST 1993 


AUTOMATIC PROOFREADER 


6 CLR 
1@ VE=PERK(772)+256*PEEK(773): 
LO=43:HI=44: PRINT" {CLR} 
{WHT }AUTOMATIC PROOFREADER 
{SPACE}FOR "; 
26 IF VE=42364 THEN PRINT "64" 
36 IF VE=17165 THEN LO=45:HI=4 
6:WAIT CLR: PRINT"128" 
40 SA=(PEEK(LO)+256*PEEK (HI) ) + 
6:FOR J=SA TO SA+166:READ B 
:POKE J,B:CH=CH+B:NEXT 
5@ IF CH<>20570 THEN PRINT "*E 
RROR* CHECK TYPING IN DATA 
{SPACE} STATEMENTS" : END 
66 FOR J=1 TO 5:READ RF,LF,HF: 
RS=SA+RF:HB=INT (RS/256) :LB= 
RS- (256*HB) 
76 CH=CH+RF+LF+HF:POKE SA+LF,L 
B:POKE SA+HF,HB:NEXT 
80 IF CH<>22054 THEN PRINT "*E 
RROR* RELOAD PROGRAM AND CH 
ECK FINAL LINE":END 
98 IF VE=17165 THEN POKE SA+14 
,22:POKE SA+18,23:POKESA+29 
1224: POKESA+139, 224 
100 POKE SA+149,PEEK(772) :POKE 
SA+15@6, PEEK(773) : PRINT" 
{CLR}PROOFREADER ACTIVE" 

119 SYS SA:POKE HI,PEEK(HI)+1: 
POKE (PEEK(LO)+256*PEEK (HI 
))-1,0:NEW 

129 DATA129,169,73,141,4,3,169 
73,141,5,3,88,96,165, 20,13 
3,167 

130 DATA165,21,133,168,169,0,1 
41,0,255,162,31,181,199,15 
7,227 

146 DATA3,202,16,248,169,19,32 
7216,255,169,18,32,210,255 
7166 

156 DATAG,132,186,132,176,136, 
236,1809,200,185,G,2,248,46 
7201 

160 DATA34,268,8,72,165,176,73 
7255,133,176,104,72,201,32 
1208 

170 DATA7,165,176,208,3,104,26 
Siaa orga neo ad ye Lee yd 
5 

180 DATA121,0,2,133,167,165,16 
8,165,0,133,168,262,208,23 
9,240 

199 DATA202,165,167,69,168,72, 
41,15,168,185,211,3,32,210 
1255 

200 DATA1@4,74,74,74,74,168,18 
5,211,3,32,219,255,162,31, 
189 

216 DATA227,3,149,199,202,15,2 
48,169,146,32,218,255,76,8 
6,137 

226 DATA65,66,67,68,69,70,71,7 

2,74,75,77,80,81,82,83,88 

230 DATA 13,2,7,167,31,32,151, 

116,117,151,128,129,167,13 
6,137 a 


— 
ONLY ON DISK 


In addition to the type-in programs 
found in each issue of the magazine, 
Gazette Disk offers bonus programs. 
This month we present three spread- 
sheet templates that are ready to 
load into SpeedCalc or GemCalc. 


Bond Fund 
By E.A Ramirez 
Guaynabo, PR 


There are several ways to determine 
capital gains and losses for bond mu- 
tual funds, but the most advanta- 
geous to the taxpayer is by calculat- 
ing the cumulative price per share 
before each transaction. This template 
does that. Its printout is suitable for 
submission to the IRS as an adden- 
dum to tax forms. 


Mortgage Analyzer 
Decision Maker 

By Dave Pankhurst 
Montreal, PQ 
Canada 


With Mortgage Analyzer, you can see 
any year in the payback of a mort- 
gage, check the balance owed, prin- 
cipal and interest paid, total mortgage 
cost, monthly payments, and more. 

Having trouble making decisions? 
With Decision Maker, your 64 can 
help. List up to seven choices and the 
advantages of each one. Assign each 
advantage a numerical rating, and the 
computer will do the rest. 


Don't forget that Gazette Disk now con- 
tains public domain programs and 
shareware. For a complete rundown 
of the PD programs on this month's 
disk, see “PD Picks.” 


You can have these programs and all 
of the type-in programs found in this is- 
sue—ready to load and run—by order- 
ing the August Gazette Disk. The 
price is $9.95 plus $2.00 shipping and 
handling. Send your order to Gazette 
Disk, COMPUTE Publications, 324 
West Wendover Avenue, Suite 200, 
Greensboro, North Carolina 27408. 
You can order by credit card by call- 
ing (919) 275-9809, extension 283.